您好我有这个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
答案 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| )+</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标记。
希望有所帮助