简码内容 wordpress 中的 p 标签格式
p tag formatting in shortcode's content wordpress
我知道这个问题已经被问过一百次了,但我一直在尝试一些我能找到的解决方案,但 none 似乎有效。
我有一个 shortcode
包装内容:
[important_note]Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nam vel velit at ex congue aliquet.[/important_note]
我在 functions.php
中使用以下简码函数:
function important_note( $atts, $content = null ) {
return '<div class="imp-note">'.$content.'</div>';
}
add_shortcode("important_note", "important_note");
这是生成的 html 代码:
<div class="imp-note">
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
<p></p>
<p>Nam vel velit at ex congue aliquet.</p>
</div>
主要问题是空的 <p>
,我一直在尝试使用此处提到的这些解决方案来解决这个问题:remove empty <p> tags from wordpress shortcodes via a php functon and on Github 但是这似乎解决了 <p>
包装 [=16] =]不是shortcode
.
的内容
第一行没有任何 <p>
换行也有点奇怪,这让我觉得我应该向短代码函数添加代码?
在此先感谢您的帮助。
更新
好的,这段代码看起来可以解决问题:
remove_filter( 'the_content', 'wpautop' );
add_filter( 'the_content', 'wpautop' , 99);
add_filter( 'the_content', 'shortcode_unautop',100 );
如此处所示: and here: http://www.paulund.co.uk/remove-line-breaks-in-shortcodes(将 wpautop() 删除到仅在短代码中的内容)
AND 短代码中的内容必须是这样的,而不是我上面显示的那样:
[important_note]
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nam vel velit at ex congue aliquet.
[/important_note]
内容与简码标签是分开的。该简码输出以下 html:
<div class="imp-note">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p>Nam vel velit at ex congue aliquet.</p>
</div>
将确认它是否适用于所有简码...
正如我在我的问题中提到的,在 functions.php
中更新这段代码可以解决问题:
remove_filter( 'the_content', 'wpautop' );
add_filter( 'the_content', 'wpautop' , 99);
add_filter( 'the_content', 'shortcode_unautop',100 );
正如这个问题的答案所示: and this post: http://www.paulund.co.uk/remove-line-breaks-in-shortcodes(向下滚动到: 删除 wpautop() 到仅在短代码中的内容)
将短代码中的内容与短代码标签分开也很重要,否则第一行将不会包含在 <p>
标签中:
[important_note]
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nam vel velit at ex congue aliquet.
[/important_note]
HTML 输出:
<div class="imp-note">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p>Nam vel velit at ex congue aliquet.</p>
</div>
我检查了整个 WordPress 网站的短代码,所有短代码的格式都正确。希望这对外面的一些人有所帮助 :)
你试过这个吗
remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );
更多信息:http://codex.wordpress.org/Function_Reference/wpautop
你也可以在functions.php文件中添加这个函数
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);
}
我知道这个问题已经被问过一百次了,但我一直在尝试一些我能找到的解决方案,但 none 似乎有效。
我有一个 shortcode
包装内容:
[important_note]Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nam vel velit at ex congue aliquet.[/important_note]
我在 functions.php
中使用以下简码函数:
function important_note( $atts, $content = null ) {
return '<div class="imp-note">'.$content.'</div>';
}
add_shortcode("important_note", "important_note");
这是生成的 html 代码:
<div class="imp-note">
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
<p></p>
<p>Nam vel velit at ex congue aliquet.</p>
</div>
主要问题是空的 <p>
,我一直在尝试使用此处提到的这些解决方案来解决这个问题:remove empty <p> tags from wordpress shortcodes via a php functon and on Github 但是这似乎解决了 <p>
包装 [=16] =]不是shortcode
.
第一行没有任何 <p>
换行也有点奇怪,这让我觉得我应该向短代码函数添加代码?
在此先感谢您的帮助。
更新
好的,这段代码看起来可以解决问题:
remove_filter( 'the_content', 'wpautop' );
add_filter( 'the_content', 'wpautop' , 99);
add_filter( 'the_content', 'shortcode_unautop',100 );
如此处所示: and here: http://www.paulund.co.uk/remove-line-breaks-in-shortcodes(将 wpautop() 删除到仅在短代码中的内容)
AND 短代码中的内容必须是这样的,而不是我上面显示的那样:
[important_note]
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nam vel velit at ex congue aliquet.
[/important_note]
内容与简码标签是分开的。该简码输出以下 html:
<div class="imp-note">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p>Nam vel velit at ex congue aliquet.</p>
</div>
将确认它是否适用于所有简码...
正如我在我的问题中提到的,在 functions.php
中更新这段代码可以解决问题:
remove_filter( 'the_content', 'wpautop' );
add_filter( 'the_content', 'wpautop' , 99);
add_filter( 'the_content', 'shortcode_unautop',100 );
正如这个问题的答案所示: and this post: http://www.paulund.co.uk/remove-line-breaks-in-shortcodes(向下滚动到: 删除 wpautop() 到仅在短代码中的内容)
将短代码中的内容与短代码标签分开也很重要,否则第一行将不会包含在 <p>
标签中:
[important_note]
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nam vel velit at ex congue aliquet.
[/important_note]
HTML 输出:
<div class="imp-note">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>
<p>Nam vel velit at ex congue aliquet.</p>
</div>
我检查了整个 WordPress 网站的短代码,所有短代码的格式都正确。希望这对外面的一些人有所帮助 :)
你试过这个吗
remove_filter( 'the_content', 'wpautop' );
remove_filter( 'the_excerpt', 'wpautop' );
更多信息:http://codex.wordpress.org/Function_Reference/wpautop
你也可以在functions.php文件中添加这个函数
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);
}