我已通过给定代码禁用了wpautop:
remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );
此功能有效。但我的实际问题是,它删除了我在内容中手动使用的自定义“p”标签。
所以问题是,当我不使用上面给出的代码时,会有自动p
标记破坏我的网站,当我禁用它们时,自定义p
标记也会被禁用。< / p>
答案 0 :(得分:1)
避免wpauto问题的最简单最简单的方法是了解wpautop的工作原理,
任何未用块元素包装的纯文本或内联元素都将自动换行为p。如果元素是块并且在其中没有两个换行符,则它不会用P以及其中的元素换行,空的内联元素将被剥离并移除。
示例
内联
<img src="blabal.jpg">
将输出<p><img src="blabal.jpg"></p>
,
I am awesome
将输出<p>I am awesome</p>
,
<span>Really?</span>
将输出<p><span>Really?</span></p>
,
块
<div><img src="blabal.jpg"></div>
将输出<div><img src="blabal.jpg"></div>
,
<div>I am awesome</div>
将输出<div>I am awesome</div>
,
<div><span>Really?</span></div>
将输出<div><span>Really?</span></div>
,
<span></span>
将不输出任何内容,(将删除空内联元素。),
我真的很喜欢wpautop,我从不禁用它,我只是用DIV包装任何内容如果有一个我不想要P的元素,我还有一个短代码,当元素为时避免wpauto在内部,当你有一个想要避免自动p标签的长屁内容时它很有用
答案 1 :(得分:1)
这是我刚刚通过实验找到的修复/解决方法。为<p>
元素提供属性(<p class>
)。它甚至不必具有实际价值。 WordPress似乎认为如果它有一个属性,那就值得保留。此外,该属性甚至不必是实际的HTML属性。例如,<p data-please-work>
似乎工作正常。我不是说我一定会推荐这样做,但值得一提。
我实际上自己刚刚发现了这个问题,并且正在寻找解决方案引导我解决这个问题。这是一个非常恼人的情况,我不明白为什么它会这样。您会认为禁用它只会阻止WordPress添加自己的<p>
元素 - 但不会。它似乎试图阻止 <p>
元素,期间 - 甚至你的。
如果其他人有其他办法解决这个问题,我很想知道。 Silver的提示似乎有助于了解。