在循环后添加快捷码结束标记

时间:2017-11-23 作者:Stefano

我在用手风琴的短码。我想在这个短代码中加入一个循环。然而,结束标记似乎没有被解析。

<?php echo do_shortcode(\'[su_accordion]\');?>

<?php
if ( have_posts() ) :
    while ( have_posts() ) : the_post();
        echo \'<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">\';
        echo do_shortcode(\'[su_spoiler title="\'.get_the_title().\'" open="no" style="default" icon="plus" anchor="" class=""]\'.get_the_content().\'[/su_spoiler]\');
        echo \'</div>\';

    endwhile;
else :
    echo wpautop( \'Sorry, no posts were found\' );
endif;
?>

<?php echo do_shortcode(\'[/su_accordion]\');?>
快捷码的最后一部分显示为简单文本。

有什么解决方案吗?

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

将循环的所有输出收集到一个变量中,将其包装在accordion shortcode中,然后通过do\\u shortcode传递:

$output = \'\';   

if ( have_posts() ) :
    while ( have_posts() ) : the_post();
        $output .= \'<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">\';
        $output .= do_shortcode(\'[su_spoiler title="\'.get_the_title().\'" open="no" style="default" icon="plus" anchor="" class=""]\'.get_the_content().\'[/su_spoiler]\');
        $output .= \'</div>\';

    endwhile;
else :
    $output = wpautop( \'Sorry, no posts were found\' );
endif;

echo do_shortcode( \'[su_accordion]\' . $output . \'[/su_accordion]\' );
我用几个封闭的短代码对此进行了测试,得到了预期的输出。

结束

相关推荐

从gensis_loop中删除gensis_404挂接

我正在使用genesis主题,我想定制一个404页面。为此,我希望删除默认的404钩子并实现我自己的钩子。在我的插件函数中。php我添加了我的操作:add_action( \'genesis_loop\', \'genesis_customizations_404\' ); 在函数中,我添加了删除:function genesis_customizations_404() { echo \'test\'; remove_action(\'genesis_loop\',