我在WordPress中使用短代码。在每个短代码输出(结束div)后,我得到了< br> (或< br />)标记。 试图过滤掉它们,但我不知道如何。生成的HTML看起来像
<div class="fullwidth"><!-- 1st shortcode-->
<div class="fullwidth-content">
<!-- 2nd shortcode-->
<div class="twocol-one"> content
</div><br>
</div><br>
<!-- 3rd shortcode-->
<div class="twocol-second"> content
</div><br>
<div class="clearboth"></div>
</div><br>
似乎BR是来自 tinyMCE 的换行符。而且我不想要loooong shotcode行。
我正在尝试使用preg_replace但我无法创建正确的$ pattern。
你能帮助我吗?
我的功能
function replace_br($content) {
$rep = preg_replace("/<\/div>\s*<br\s*\/?>/i", "</div>",$content);
return $rep; }
add_filter('the_content', 'replace_br');
不能正常工作。
使用时
功能$rep = preg_replace("/\s*<br\s*\/?>/i", "",$content);
,所有BR都被替换。
很好,但我想在关闭DIV标签后仅替换BR。
str_replace("</div><br>", "</div>", $content);
也无效。
我的功能出了什么问题?
没有错误返回。
答案 0 :(得分:0)
这是使用正则表达式的另一种方法 在你的情况下
/(?<=<\/div>)(<br[\s\/]?>)/mg