如何在ACF Repeater的ECHO DO_SHORTER代码内使用“While”和“End While”?

时间:2015-05-14 作者:Jason

我觉得我离得很近,但我只需要有人帮助我完成这项工作。我使用了一个带有高级自定义字段的转发器字段,并使用了echo短代码,但只需要部分内容在循环中重复。

请参见下面的我的代码:

<?php
// check if the repeater field has rows of data
if( have_rows(\'homepage_slider\') ):
// loop through the rows of data

// display a sub field value
echo do_shortcode(\'
[ux_slider timer="4500" arrows="true" bullets="true" auto_slide="true" nav_color="light"]

\' . while ( have_rows(\'homepage_slider\') ) : the_row(); . \'

[ux_banner bg=" \' . get_sub_field(\'slider_image\') . \' " height="600px" text_color="light" text_align="center" text_pos="center" text_width="70%" parallax_text="0" parallax="3" effect="sparkle"]

<h1>\' .  get_sub_field(\'slider_slide_title\') . \'</h1>
<h4 class="thin-font">\' . get_sub_field(\'slider_sub_title\') . \'</h4>
[/ux_banner]

\' . endwhile; . \'

[/ux_slider]\');

else :
// no rows found
endif;
?>
似乎是“while”和“endwhile”的位置,但ux\\U横幅是我想重复的唯一短代码。如何在echo do\\u短代码中使用“while”和“end while”?如果你有任何想法/想法,请告诉我,非常感谢你的帮助。

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

您需要在循环中生成短代码,然后执行它:

if ( have_rows( \'homepage_slider\' ) ) {
    $shortcode = \'[ux_slider timer="4500" arrows="true" bullets="true" auto_slide="true" nav_color="light"]\';

    while ( have_rows(\'homepage_slider\') ) {
        the_row();

        $shortcode .=
\'[ux_banner bg=" \' . get_sub_field( \'slider_image\' ) . \' " height="600px" text_color="light" text_align="center" text_pos="center" text_width="70%" parallax_text="0" parallax="3" effect="sparkle"]
    <h1>\' .  get_sub_field( \'slider_slide_title\' ) . \'</h1>
    <h4 class="thin-font">\' . get_sub_field( \'slider_sub_title\' ) . \'</h4>
[/ux_banner]\';

    }

    $shortcode .= \'[/ux_slider]\';

    echo do_shortcode( $shortcode );
}

结束

相关推荐

Multiple level shortcodes

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

如何在ACF Repeater的ECHO DO_SHORTER代码内使用“While”和“End While”? - 小码农CODE - 行之有效找到问题解决它

如何在ACF Repeater的ECHO DO_SHORTER代码内使用“While”和“End While”?

时间:2015-05-14 作者:Jason

我觉得我离得很近,但我只需要有人帮助我完成这项工作。我使用了一个带有高级自定义字段的转发器字段,并使用了echo短代码,但只需要部分内容在循环中重复。

请参见下面的我的代码:

<?php
// check if the repeater field has rows of data
if( have_rows(\'homepage_slider\') ):
// loop through the rows of data

// display a sub field value
echo do_shortcode(\'
[ux_slider timer="4500" arrows="true" bullets="true" auto_slide="true" nav_color="light"]

\' . while ( have_rows(\'homepage_slider\') ) : the_row(); . \'

[ux_banner bg=" \' . get_sub_field(\'slider_image\') . \' " height="600px" text_color="light" text_align="center" text_pos="center" text_width="70%" parallax_text="0" parallax="3" effect="sparkle"]

<h1>\' .  get_sub_field(\'slider_slide_title\') . \'</h1>
<h4 class="thin-font">\' . get_sub_field(\'slider_sub_title\') . \'</h4>
[/ux_banner]

\' . endwhile; . \'

[/ux_slider]\');

else :
// no rows found
endif;
?>
似乎是“while”和“endwhile”的位置,但ux\\U横幅是我想重复的唯一短代码。如何在echo do\\u短代码中使用“while”和“end while”?如果你有任何想法/想法,请告诉我,非常感谢你的帮助。

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

您需要在循环中生成短代码,然后执行它:

if ( have_rows( \'homepage_slider\' ) ) {
    $shortcode = \'[ux_slider timer="4500" arrows="true" bullets="true" auto_slide="true" nav_color="light"]\';

    while ( have_rows(\'homepage_slider\') ) {
        the_row();

        $shortcode .=
\'[ux_banner bg=" \' . get_sub_field( \'slider_image\' ) . \' " height="600px" text_color="light" text_align="center" text_pos="center" text_width="70%" parallax_text="0" parallax="3" effect="sparkle"]
    <h1>\' .  get_sub_field( \'slider_slide_title\' ) . \'</h1>
    <h4 class="thin-font">\' . get_sub_field( \'slider_sub_title\' ) . \'</h4>
[/ux_banner]\';

    }

    $shortcode .= \'[/ux_slider]\';

    echo do_shortcode( $shortcode );
}

相关推荐

Namespaced shortcode?

我正在改造一个旧的WP站点,该站点有许多自定义的短代码,显然由于代码当前的组织方式,这些短代码在性能方面付出了代价。当然,我可以修复优化不好的代码,使用十几个短代码,并且一天就可以完成,但我想知道如何更好地组织它们。根据WordPress\'documentation, 建议将它们放在插件中并在上初始化init. 我们可以通过这样“命名”它们来减少这个钩子中的负载吗?[com.company shortcode attr=\"attr\" prop=\"prop\"] 有人尝试过这样的解决方案吗