Je voudrais insérer un wrapper barba.js pour activer barba autour de la balise principale.
Le code actuel est comme ci-dessous.
<main>
<article>
........
</article>
</main>
Et ce que je désire est comme ci-dessous.
<div id="barba-wrapper">
<div class="barba-container">
<main>
<article>
........
</article>
</main>
</div>
</div>
Si la balise principale est à l'intérieur du filtre 'the_content', je pourrais coder comme ci-dessous.
add_filter('the_content', function($content) {
$content = str_replace('<div id="barba-wrapper"><div
class="barba-container"><main>', '<main>', $content);
$content = str_replace('</main>', '</main></div></div>', $content);
return $content;
});
Cependant, <main>
n'est pas à l'intérieur the_content
filtre, la fonction ci-dessus ne fonctionne pas.
Est-il possible de le remplacer? et y a-t-il un avertissement à ce sujet?
Je suppose qu'une expression similaire à:
(<main>(.*?)<\/main>)
pourrait fonctionner ici.
$re = '/(<main>(.*?)<\/main>)/s';
$str = '
<main>
some content we wish goes here
</main>';
$subst = '<div id="barba-wrapper"><div class="barba-container">$1</div></div>';
$result = preg_replace($re, $subst, $str);
echo $result;
en fonction de ce à quoi pourrait ressembler notre code:
$re = '/(<main>(.*?)<\/main>)/s';
$subst = '<div id="barba-wrapper"><div class="barba-container">$1</div></div>';
$result = preg_replace($re, $subst, $content);
echo $result;