WordPress:如何删除<p>和</p> <ul> <li>标签中不必要的breakline <br/>标签

时间:2016-06-21 11:16:57

标签: wordpress

您好我有这个wordpress网站,我想删除自动插入<ul><li> tag的不必要的breakline标记这是我在functions.php文件中插入的代码:

remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );

add_filter( 'the_content', 'nl2br' );
add_filter( 'the_excerpt', 'nl2br' );

add_filter('the_content', 'remove_empty_p', 20, 1);
function remove_empty_p($content){
    $content = force_balance_tags($content);
    return preg_replace('#<p>\s*+(<br\s*/*>)?\s*</p>#i', '', $content);
}

nl2br会破坏它的内容。但似乎<ul><li> 也会插入一条断裂线。

我希望只有<p>标记才能断开。

我的问题是如何防止它在<ul><li>标记内添加断行线?

有人可以帮我吗?

非常感谢任何帮助。 TIA

2 个答案:

答案 0 :(得分:1)

尝试以下代码

add_filter('tiny_mce_before_init', 'override_mce_options');    
function remove_empty_p( $content ) {
    $content = force_balance_tags( $content );
    $content = preg_replace( '#<p>\s*+(<br\s*/*>)?\s*</p>#i', '', $content );
    $content = preg_replace( '~\s?<p>(\s|&nbsp;)+</p>\s?~', '', $content );
    return $content;
}
add_filter('the_content', 'remove_empty_p', 20, 1); 

remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );

答案 1 :(得分:0)

我不建议使用remove_filter选项,因为它会删除您在模板中调用它们的所有位置的标记和标记。

最好的方法是通过PHP清理你的字符串

你可以使用php函数strip_tags删除无用的标记:echo

strip_tags(get_the_excerpt()); // Get the raw text excerpt from the current post

echo strip_tags(category_description()); // Get the raw text cat desc from the current cat page

这将在调用时删除当前wordpress帖子中的所有HTML标记。

您还可以在以下情况下添加修剪功能:echo trim(strip_tags(get_the_excerpt())); // Get the raw text excerpt from the current post

echo trim(strip_tags(category_description())); // Get the raw text cat desc from the current cat page

这对于获取meta =&#34;描述&#34;的原始文本是完美的。和标题,不建议使用HTML标记。

希望有所帮助