ShortCode and extra </p>

时间:2011-03-16 作者:menardmam

[box id=“1”text=“一些文本”]

短代码在某一点上是输出文本

html结果为:</p> some text </p>

开头有一个额外的结束段落,结尾有一个开头。。。为什么?

这些是从哪里来的?。。。。有什么想法吗?。。它搞砸了我的w3验证!

**注意我发现。。。但在我看来,一切都“修补”了。。。任何干净的溶液。。。wp脏了吗?reference

3 个回复
最合适的回答,由SO网友:menardmam 整理而成

我发现这是一个已知的bug,将在将来的版本中修复Reference here 所以,我用了这个代码。。。不漂亮,但请施展魔法!,谢谢

$content = do_shortcode( shortcode_unautop( $content ) );
if ( \'</p>\' == substr( $content, 0, 4 )
and \'<p>\' == substr( $content, strlen( $content ) - 3 ) )
    $content = substr( $content, 4, strlen( $content ) - 7 );
return \'<div my stuff>\' . $content . \'</div>\';

SO网友:user4152

我遇到了同样的问题,并检查了add\\u filter()函数中的$内容。在那里,您可以看到短代码发生了什么。我最终得到了一个简单的插件,可以删除短代码上愚蠢的p和br标记:http://www.johannheyne.de/wordpress/shortcode-empty-paragraph-fix/

SO网友:TheDeadMedic

确保之前有双线中断and 在编辑器中的短代码之后;

Lorem ipsum dolor sit amet,concetetur adipiscing elit。Aenean sodales、neque vitae imperdiet aliquet、elit tortor egestas dui、vel fermentum neque est eu est。

[box id=“1”text=“一些文本”]

Lorem ipsum dolor sit amet。。。

结束