WordPress : Enveloppez les trois premiers mots dans une plage

Publié par Jean-Michel le

Je souhaite filtrer the_content pour envelopper les trois premiers mots du premier paragraphe dans une balise span. Ceci est mon code jusqu’à présent:

function first_paragraph($content) {
   if(is_single()) {
      return preg_replace('regex goes here', "<p><span>$1</span>", $content, 1);
   }
}

add_filter('the_content', 'first_paragraph');

Jusqu’à présent, je n’ai trouvé aucune expression régulière ni aucun remplacement correspondant aux trois premiers mots du premier paragraphe.

De l’aide?

Merci!

Solution n°1 trouvée

Comme ça:

php > $content = 'The quick brown fox jumped over the lazy dog.';
php > echo preg_replace('/^((S+s+){2}S+)/', '<span>$1</span>', $content);
<span>The quick brown</span> fox jumped over the lazy dog.

Donc, vous voudriez ceci:

function first_paragraph($content) {
   if(is_single()) {
      return preg_replace('/^((S+s+){2}S+)/', "<p><span>$1</span>", $content, 1);
   }
}

add_filter('the_content', 'first_paragraph');

Gardez simplement à l’esprit que si le $contentcontient moins de quatre mots, l’expression régulière ne correspondra pas et le remplacement ne se produira pas.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *