Je dois parcourir chaque paragraphe du contenu et ajouter un identifiant à chaque paragraphe avec une valeur incrémentielle.
function incrementparagraphs( $content ) {
for ($i = 0; $i <count($content); $i++) {
return str_replace( "<p>", "<p data-section-id=" . $i . ">", $content );
}
}
add_filter( 'the_content', 'incrementparagraphs', 10, 1 );
Si je comprends bien votre question, vous pouvez essayer ce qui suit:
add_filter( 'the_content', 'incrementparagraphs', 10, 1 );
function incrementparagraphs( $content )
{
return preg_replace_callback(
'|<p>|',
function ( $matches )
{
static $i = 0;
return sprintf( '<p data-section-id="%d">', $i++ );
},
$content
);
}
pour remplacer chaque balise <p>
par <p data-section-id="1">
, l'attribut data-section-id
contenant le nombre incrémentiel de la balise p
actuelle.
Avant:
<p>aaa</p>
<p>bbb</p>
<p>ccc</p>
Après:
<p data-section-id="0">aaa</p>
<p data-section-id="1">bbb</p>
<p data-section-id="2">ccc</p>
Plus sur preg_replace_callback
ici .