您何时调用代码来删除和添加新过滤器?您可以尝试以更高的优先级调用它们(如果您是从另一个钩子调用它们)。
很可能是由于另一个插件或主题在上进行了自己的替换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