在_CONTENT之后执行结束快捷代码

时间:2015-04-16 作者:Brad Dalton

我需要在数千篇帖子上执行一个短代码,因为我已经手动添加了一些短代码,这些帖子还没有包含短代码。

我正在使用另一个函数在第二段之后添加开头的短代码,这很有效。

我编写了这段代码,它在内容之后输出结束短代码,但它不执行。

add_filter( \'the_content\', \'closing_shortcode\' );
function closing_shortcode( $content ) {

        if( !has_shortcode( $content, \'members\') )
        return $content;

        $close_shortcode = do_shortcode(\'[/member]\');

        return $content . $close_shortcode;
}       
也许我需要使用echo do\\u短代码。

1 个回复
SO网友:s_ha_dum

也许我误解了你在做什么,如果是这样,我向你道歉,但是。。。

如果这篇文章还没有内容,看起来你是在返回内容,根据我对你问题的理解,这是我的看法我误解了原来的问题,但根据下面的评论,您需要运行do_shortcode() 在整个内容块上,而不仅仅是在结束部分。

我认为您的代码应该如下所示:

add_filter( \'the_content\', \'closing_shortcode\' );
function closing_shortcode( $content ) {

        // return if the shortcode has already been added
        // Note the ! was removed
        if( has_shortcode( $content, \'members\') )
        return $content;

        // Add the closing sortcode tag
        $close_shortcode = \'[/member]\';

       // and run do_shortcode() on the whole content block
        return do_shortcode($content . $close_shortcode);
}      
如果这不起作用,就需要对核心内容和短代码执行系统进行一些操作,我将不得不在以后有更多时间处理。

结束

相关推荐

Multiple level shortcodes

我正在开发一个插件,遇到了一种情况,我希望有人能帮我找到一个解决方案。我想要一个短代码结构,如:[shortcode_1] [shortcode_2] [shortcode_3] [shortcode_4][/shortcode_4] [/shortcode_3] [/shortcode_2] [/shortcode_1] 但如果我使用add\\u短代码,只有第一个短代码有效。。。有没有办法得到这样的短代码结构?谢谢