我一直试图在Wordpress中添加一个过滤器来抑制空段落。我在网上找到了许多备选方案(这里是其中之一https://gomakethings.com/remove-empty-paragraphs-added-by-wordpress/ ) 但是,到目前为止,他们都失败得很惨。在检验各种假设后,我发现这种奇怪的正则表达式行为正在发生:
我自己创建并测试了这个小脚本(它所做的只是用破折号替换空格):
<?php
$content = \'abc def\';
$patterns = array(\'#\\s#\');
$replacements = array(\'-\');
$new_content = preg_replace($patterns, $replacements, $content);
echo $new_content;
可预见的结果是:
abc-def
然后我在wordpress中添加了与过滤器相同的代码:
add_filter(\'the_content\', array($this,\'empty_paragraph_fix\'),20,1);
function empty_paragraph($content) {
$patterns = array(\'#\\s*#\');
$replacements = array(\'-\');
$content = preg_replace($patterns, $replacements, $content);
return $content;
}
但这次它给了我一些非常奇怪的结果。在最初包含以下内容的内容上:
<div class="campus-list">
<ul class= ...
它返回了以下内容:
-<-d-i-v--c-l-a-s-s-=-"-c-a-m-p-u-s---l-i-s-t--"-->--<-u-l--c-l-a-s-s-=-
我错过了什么?你见过这样的事吗?