我有一个blockquote的短代码[blockquote]this is the quote[/blockquote]
... 这是代码。
function shortcode_shortcodetest( $atts, $content = null ) {
$return = \'<div class="blockquotewrapper"><blockquote>\';
$return .= do_shortcode( $content );
$return .= \'</blockquote>\';
$return .= \'</div>\';
return $return;
}
add_shortcode( \'shortcodetest\', \'shortcode_shortcodetest\' );
因此,我预计输出为:
<div class="blockquotewrapper">
<blockquote><p>this is a test</p></blockquote>
</div>
或者也许
<div class="blockquotewrapper">
<blockquote>this is a test</blockquote>
</div>
但我得到的是:
<div class="blockquotewrapper">
<blockquote>this is a test<p></p></blockquote>
</div>
(注意开头段落标记的位置)
是什么导致开口p
标记以移动到它所在的位置。我注意到,如果我删除div
或blockquote
从shortcode函数中,这不会发生,但出于一些样式的原因,我想使用包装器,因为在完整版本中,我有一个关联的引用可能性。。。很明显,我需要一个blockquote。
最合适的回答,由SO网友:byronyasgur 整理而成
我只是碰巧发现了它是什么,所以我想我会把它留在这里,因为它可能会对将来的人有所帮助。一些网页,包括this question 建议使用以下代码防止wpautop在短代码之后运行。现在我不能完全理解这段代码,但我的函数中有它。php,无论出于什么原因,它都是上述原因。
remove_filter( \'the_content\', \'wpautop\' );
add_filter( \'the_content\', \'wpautop\' , 12);