是否自动添加BR和段落?

时间:2011-03-07 作者:Wordpressor

下面是我非常简单的短代码:

function box_shortcode( $atts, $content = null ) {
        extract( shortcode_atts( array(
            \'width\' => \'auto\',
            \'height\' => \'auto\', 
            ), $atts ) );  

       return \'<div class="boxy-box" style="width:\'. $width .\'; height:\'. $height .\';" >\'.do_shortcode($content).\'</div>\';
    }

    add_shortcode(\'box\', \'box_shortcode\'); 
什么东西

应给出:

<div class="boxy-box" width:auto; height:auto;>something</div>
但事实并非如此。即使是一个空的短代码(没有内容,例如[box][/box])也会给出:

<div class="boxy-box" width:auto; height:auto;><br/></div>
(我不在乎,但不知道br来自哪里)

主要问题是,当我尝试做某事时,我得到了:

<div class="boxy-box" width:auto; height:auto;><br/>something<br/></div>
我知道WP editor会自动格式化文本,并且有“noP”插件,但首先-我使用的是HTML编辑器,其次,为什么该死的WP会将Brs(有时是p)添加到内联代码中O

这不是什么大问题,但我必须获得纯输出,所以:

[box]<h1>Header</h1><div>Content</div>[/box]
将在我的箱子div内提供一个标题和div,没有任何Paragrahs、brs、spans等。

有趣的是,我用h2而不是div有相同的短代码,它没有给出任何brs等。

有时我也会<div class="boxy-box" width:auto; height:auto;></p>$content (...)

[编辑]

我发现了一些评论:

这也快把我逼疯了。如果wordpress过滤了该死的代码并将标签包裹起来,那么使用html/代码模式发布的意义何在?

所以我想这就是问题所在。是否有一种方法可以至少为HTML编辑器启用自动转换功能/

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

您可以推迟wp\\U自动筛选。Wordpress默认启用此筛选器。并且它是在短码输出之前进行处理的。

remove_filter( \'the_content\', \'wpautop\' );
add_filter( \'the_content\', \'wpautop\' , 12);
将此添加到functions.php 并检查问题是否仍然存在!

在此处查看类似问题:stray <p> elements

SO网友:user4152

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

SO网友:JimmyJack

我试过这个:

remove_filter( \'the_content\', \'wpautop\' );
add_filter( \'the_content\', \'wpautop\' , 12);
过滤器工作正常,但弄乱了联系方式7

我尝试了插件代码,效果非常好!

结束

相关推荐

WP 3.1让Tax_Query在Query_Posts()中工作

我正试图使用以下代码对我的自定义帖子使用多个自定义分类法进行筛选,但我的新代码一直是空的,即循环中没有帖子出现。其工作原理如下:用户从表单中的三个不同下拉列表中选择自定义分类法的术语“fttype”、“ftperiod”和“ftduration”,并将其传递给以下代码:我最初有这段代码(虽然没有分页),但我正在尝试实现的新代码无法使用WP 3.1内置的通过多个自定义分类进行过滤的功能(请参阅下面的新代码)。有人知道我做错了什么吗?这件事已经有一段时间了。。。谢谢osuOLD CODE// Set toda