从短码内容中删除wpautop/删除缓冲区中的空格

时间:2012-06-19 作者:helgatheviking

我正在使用Mailchimp plugin, 它有一个短代码,使用输出缓冲来获取小部件的代码并将其输出到内容中。

然而,小部件代码有大量的空白,因此\\u内容过滤器会抛出无用的换行符(如隐藏输入之后)并清空p 到处都有标签。。。使其无法使用。我正在删除这个短代码以添加我自己的短代码,但我不知道该怎么做才能防止WordPress wpautop过滤器变得疯狂。我最初的想法是去掉HTML标记之间的空白,但我不知道该怎么做。

理想情况下,插件将连接一个字符串以返回,而不是使用输出缓冲,但我不知道他们是否会介意。

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

您不需要插件来完成此操作。只需在functions.php 活动主题中的文件:

remove_filter( \'the_content\', \'wpautop\' );
add_filter( \'the_content\', \'wpautop\' , 99 );
add_filter( \'the_content\', \'shortcode_unautop\', 100 );

SO网友:Chiedo

shea\'s answer 是一个很好的解决方案,但它会关闭所有可能不需要的短代码的自动转换。

我编写了一个脚本,允许您运行以下内容:

include "shortcode-wpautop-control.php";
chiedolabs_shortcode_wpautop_control(array(\'yourshortcode\'));
它允许您为特定的短代码而不是所有短代码关闭wpautop。

我又一次写了剧本。我的意思不是自我提升,但当我将来更新它时,我会在GitHub上更新它,所以在这里发布代码是没有意义的。

您可以在Shortcode wp-autop control

SO网友:Eh Jewel

有一个WordPress函数可以很好地完成这项工作。不需要使用自定义函数或插件来完成此操作。

只需使用shortcode_unautop($pee) 函数从短代码内容中删除wpautop。在这里$pee 是必需的字符串。

结束

相关推荐

the_excerpt and shortcodes

我正在使用索引页上的\\u摘录。我还在我的每一篇文章的开头使用dropcap快捷码。在索引页面上,帖子不会显示周围带有dropcap快捷码的信件。如果我的帖子中有“Dog”一词,索引页会显示“og”。在使用\\u摘录时,如何使用短代码?短代码 function drcap ($atts, $content = null) { return \'<div class=\"dropcap\">\' . do_shortcode($content) . \'</div&g