停止WordPress自动显示<p> </ p>标签

bat*_*ask 7 html css php wordpress

Wordpress会<p></p>在每个地方自动生成大量不需要的标签.甚至img标签也包含这些<p>标签.因此,它会在网站中创建不需要的空白区域.我尝试了很多方法来删除这些标签: -

preg_replace(array('<p>','</p>'),array('',''),the_content(),1);

remove_filter( 'the_content', 'wpautop' );

preg_replace('/<p>\s*(<a .*>)?\s*(<img .* \/>)\s*(<\/a>)?\s*<\/p>/iU', '\1\2\3', $content)
Run Code Online (Sandbox Code Playgroud)

没有什么对我有用.首先我想知道为什么这些标签自动生成?我该如何解决这个问题?

Rah*_*zir 15

Wordpress Visual Editor本身为新行创建了这些标记.

您可以尝试wpautop从the_excerpt或删除过滤器the_content

remove_filter( 'the_content', 'wpautop' );
// OR
remove_filter( 'the_excerpt', 'wpautop' );
Run Code Online (Sandbox Code Playgroud)

有时它不起作用(过去不适合我.不是PHP).

您可以尝试使用Javascript/jQuery,在加载DOM之后或结束</body>标记之前放置此代码.

jQuery('p:empty').remove();
Run Code Online (Sandbox Code Playgroud)

将删除整个<p></p>文档中的所有空元素.


Ana*_*nth 5

你可以尝试这个插件

http://wordpress.org/plugins/raw-html/
Run Code Online (Sandbox Code Playgroud)

或者在theme的functions.php文件中使用它

remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );
Run Code Online (Sandbox Code Playgroud)