您何时调用代码来删除和添加新过滤器?您可以尝试以更高的优先级调用它们(如果您是从另一个钩子调用它们)。
很可能是由于另一个插件或主题在上进行了自己的替换the_content
... 无论是调用wpautop本身还是删除nl2br
滤器
如果它正在为nl2br
您可以调用自己的函数:
add_filter( \'the_content\', \'myown_nl2br\' );
add_filter( \'the_excerpt\', \'myown_nl2br\' );
function myown_nl2br($string) {
$string = str_replace(array("\\r\\n", "\\r", "\\n"), "<br />", $string);
return $string;
}
换行符参考:
您也可以调用nl2br()
在上述函数中,但使用str_replace
让您了解它的工作原理和技术nl2br()
仅插入a<br/>
在换行符之前,实际上不会删除换行符本身。
<小时>
Tracking down the culprit:
对整个
wp-content
的目录
the_content
, 并查找删除、添加过滤器的任何匹配项。还可以搜索
nl2br
和
wpautop
, 这应该有助于追查罪犯。
如果由于某种原因,您找到的插件或主题具有对类对象方法的回调,则标准remove_filter
将不起作用,下面是对另一个问题的回答,我在其中发布了代码,以在您无权访问类对象时删除过滤器:
https://wordpress.stackexchange.com/a/239431/51201