将嵌套的ACF转发器字段输出为简码表

时间:2019-07-17 18:05:21

标签: php wordpress advanced-custom-fields

我试图通过元素或页面上的短代码在表中显示嵌套的ACF字段。

我尝试将简码与我在Google上找到的一些代码合并,但未成功。

转发器部分来自以下链接: https://support.advancedcustomfields.com/forums/topic/help-with-creating-a-table-using-nested-repeaters/

当我使用简码时,什么都没有。

function menu_loop() {
    ob_start();
    ?> 

     <?php if ( have_rows('menu') ):

        while ( have_rows('menu') ) : the_row(); ?>

            <h2 class="menu-title"><?php the_sub_field('week'); ?><h2>

            <?php if ( have_rows('week') ): ?>

                <table>

                    <thead>
                        <tr class="menus-row">
                            <td>Days</td>
                            <td>Snack AM</td>
                            <td>Lunch</td>
                            <td>Snack PM</td>
                        </tr>
                    </thead>

                    <?php while ( have_rows('week') ) : the_row(); ?>

                        <tr class="menu-row">
                            <td><?php the_sub_field('days'); ?></td>
                            <td><?php the_sub_field('snack_am'); ?></td>
                            <td><?php the_sub_field('lunch'); ?></td>
                            <td><?php the_sub_field('snack_pm'); ?></td>
                        </tr>

                    <?php endwhile;?>

                </table>

            <?php endif;?>

        <?php endwhile;?>
        <?php endif; ?>

    <?php
    return ob_get_clean();
}
add_shortcode('menushortcode', 'menu_loop');

1 个答案:

答案 0 :(得分:0)

已部分解决。.做更多的研究/挖掘我注意到,由于这些设置即将在ACF选项页面上进行,因此我们需要在代码的某些部分添加一个“选项”,此处为有效代码

现在我可以正确显示所有内容,有没有办法将每个“周”显示为自己的标签以及相应的表格?


function menu_loop() {
    ob_start();
    ?> 

     <?php if ( have_rows('menu','option') ):

        while ( have_rows('menu','option') ) : the_row(); ?>

            <h2 class="menu-title"><?php the_sub_field('week'); ?><h2>

            <?php if ( have_rows('week','option') ): ?>

                <table>

                    <thead>
                        <tr class="menus-row">
                            <td>Days</td>
                            <td>Snack AM</td>
                            <td>Lunch</td>
                            <td>Snack PM</td>
                        </tr>
                    </thead>

                    <?php while ( have_rows('week','option') ) : the_row(); ?>

                        <tr class="menu-row">
                            <td><?php the_sub_field('days','option'); ?></td>
                            <td><?php the_sub_field('snack_am','option'); ?></td>
                            <td><?php the_sub_field('lunch','option'); ?></td>
                            <td><?php the_sub_field('snack_pm','option'); ?></td>
                        </tr>

                    <?php endwhile;?>

                </table>

            <?php endif;?>

        <?php endwhile;?>
        <?php endif; ?>

    <?php
    return ob_get_clean();
}
add_shortcode('menushortcode', 'menu_loop');