WordPress : Enveloppez les trois premiers mots dans une plage
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 $content
contient moins de quatre mots, l’expression régulière ne correspondra pas et le remplacement ne se produira pas.
0 commentaire