Php 如何替换WordPress外部内容中的HTML?
我想插入barba.js包装器来启用主标记周围的barba 当前代码如下所示Php 如何替换WordPress外部内容中的HTML?,php,html,regex,wordpress,replace,Php,Html,Regex,Wordpress,Replace,我想插入barba.js包装器来启用主标记周围的barba 当前代码如下所示 <main> <article> ........ </article> </main> <div id="barba-wrapper"> <div class="barba-container"> <main> <article>
<main>
<article>
........
</article>
</main>
<div id="barba-wrapper">
<div class="barba-container">
<main>
<article>
........
</article>
</main>
</div>
</div>
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>
<article>
........
</article>
</main>
<div id="barba-wrapper">
<div class="barba-container">
<main>
<article>
........
</article>
</main>
</div>
</div>
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;
});
........
如果主标记位于“theu content”过滤器内,我可以编写如下代码
<main>
<article>
........
</article>
</main>
<div id="barba-wrapper">
<div class="barba-container">
<main>
<article>
........
</article>
</main>
</div>
</div>
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;
});
add_filter('the_content',function($content){
$content=str_replace(“”,,$content);
$content=str_replace(“”,,$content);
返回$content;
});
但是,
不在内容过滤器内,上述功能不起作用
还有什么可以替代的吗?关于这一点有什么警告吗?我猜这是一个类似于:
(<main>(.*?)<\/main>)
(*?)
可能在这里工作
测验
$re='/(.*)/s';
$str='1
我们希望这里有一些内容
';
$subst='$1';
$result=preg_replace($re,$subst,$str);
回声$结果;
基于此,我们的代码可能如下所示:
$re = '/(<main>(.*?)<\/main>)/s';
$subst = '<div id="barba-wrapper"><div class="barba-container">$1</div></div>';
$result = preg_replace($re, $subst, $content);
echo $result;
$re='/(.*)/s';
$subst='$1';
$result=preg_replace($re,$subst,$content);
回声$结果;
Hi@Emma,很抱歉没有提供信息。我添加了当前代码和所需的输出。