Mainbaの周りにbarbaを有効にするためにbarba.jsラッパーを挿入したいと思います。
現在のコードは以下のようなものです。
<main>
<article>
........
</article>
</main>
そして私が望むのは以下のようなものです。
<div id="barba-wrapper">
<div class="barba-container">
<main>
<article>
........
</article>
</main>
</div>
</div>
メインタグが「the_content」フィルター内にある場合、以下のようにコーディングできます。
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;
});
ただし、<main>
はthe_content
フィルター内にないため、上記の関数は機能しません。
とにかくそれを置き換えることはありますか?これに関する警告はありますか?
私の推測では、次のような表現です。
(<main>(.*?)<\/main>)
ここで動作する可能性があります。
$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;
私たちのコードがどのように見えるかに基づいて:
$re = '/(<main>(.*?)<\/main>)/s';
$subst = '<div id="barba-wrapper"><div class="barba-container">$1</div></div>';
$result = preg_replace($re, $subst, $content);
echo $result;