ACF页面While循环断开页脚While循环

时间:2018-07-03 作者:Ylama

所以基本上我有一个主页和一个页脚。两者是分开的。php文件。

Im使用ACF 对于此网站。

根据文档,我在主页上为我的“灵活内容”创建了一个while循环,它可以工作,显示从CMS输入字段循环和连接的所有数据。

我的问题是在页脚,我有一个while循环来显示链接,但它不会显示unless 我从主页中删除while循环,然后链接显示在页脚中。

我真的不明白为什么会发生这种情况,我已经测试了allot,我的脑袋都被这件事缠住了,请帮忙。

Main page code:

<?php

// check if the flexible content field has rows of data
if( have_rows(\'flexible_content_field_name\') ):

    // loop through the rows of data
    while ( have_rows(\'flexible_content_field_name\') ) : the_row();

        // check current row layout
        if( get_row_layout() == \'gallery\' ):

            // check if the nested repeater field has rows of data
            if( have_rows(\'images\') ):

                echo \'<ul>\';

                // loop through the rows of data
                while ( have_rows(\'images\') ) : the_row();

                    $image = get_sub_field(\'image\');

                    echo \'<li><img src="\' . $image[\'url\'] . \'" alt="\' . $image[\'alt\'] . \'" /></li>\';

                endwhile;

                echo \'</ul>\';

            endif;

        endif;

    endwhile;

else :

    // no layouts found

endif;

?>
<?php get_footer(); ?>
Footer Code:

<div class="links">

         <?php

            if( have_rows(\'footer_page_links\', \'option\') ): 
            var_dump("test");
            while( have_rows(\'footer_page_links\', \'option\') ): the_row();

            ?>

            <p><a href="<?php the_sub_field(\'footer_link\');   ?>"><?php the_sub_field(\'footer_link_name\'); ?></a></p>

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


</div>
<?php wp_footer(); ?>
我只想补充一点,即使是vardump() 如果实现了主页面while循环,则在页脚中显示,这样它就不会进入页脚循环。页脚使用ACF选项页->LINK

如果页脚中的所有其他选项字段不在while循环中,则也会显示。我删除了主页面while循环,然后删除了页脚while循环,这只发生在灵活内容上,而我的其他带有循环的页面,不包含灵活内容的页面工作得很好。

1 个回复
SO网友:WebElaine

看起来您需要添加\'option\' 到您的页脚the_sub_field() 电话:

<p><a href="<?php the_sub_field(\'footer_link\', \'option\'); ?>"><?php the_sub_field(\'footer_link_name\', \'option\'); ?></a></p>

var_dump() 用于转储变量,而不是字符串,因此需要执行以下操作var_dump($test) 让那条线起作用。您可能在PHP日志文件中收到错误和警告,如果没有,您可以打开WP Debug来帮助找出哪些代码行导致了问题。

结束
ACF页面While循环断开页脚While循环 - 小码农CODE - 行之有效找到问题解决它

ACF页面While循环断开页脚While循环

时间:2018-07-03 作者:Ylama

所以基本上我有一个主页和一个页脚。两者是分开的。php文件。

Im使用ACF 对于此网站。

根据文档,我在主页上为我的“灵活内容”创建了一个while循环,它可以工作,显示从CMS输入字段循环和连接的所有数据。

我的问题是在页脚,我有一个while循环来显示链接,但它不会显示unless 我从主页中删除while循环,然后链接显示在页脚中。

我真的不明白为什么会发生这种情况,我已经测试了allot,我的脑袋都被这件事缠住了,请帮忙。

Main page code:

<?php

// check if the flexible content field has rows of data
if( have_rows(\'flexible_content_field_name\') ):

    // loop through the rows of data
    while ( have_rows(\'flexible_content_field_name\') ) : the_row();

        // check current row layout
        if( get_row_layout() == \'gallery\' ):

            // check if the nested repeater field has rows of data
            if( have_rows(\'images\') ):

                echo \'<ul>\';

                // loop through the rows of data
                while ( have_rows(\'images\') ) : the_row();

                    $image = get_sub_field(\'image\');

                    echo \'<li><img src="\' . $image[\'url\'] . \'" alt="\' . $image[\'alt\'] . \'" /></li>\';

                endwhile;

                echo \'</ul>\';

            endif;

        endif;

    endwhile;

else :

    // no layouts found

endif;

?>
<?php get_footer(); ?>
Footer Code:

<div class="links">

         <?php

            if( have_rows(\'footer_page_links\', \'option\') ): 
            var_dump("test");
            while( have_rows(\'footer_page_links\', \'option\') ): the_row();

            ?>

            <p><a href="<?php the_sub_field(\'footer_link\');   ?>"><?php the_sub_field(\'footer_link_name\'); ?></a></p>

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


</div>
<?php wp_footer(); ?>
我只想补充一点,即使是vardump() 如果实现了主页面while循环,则在页脚中显示,这样它就不会进入页脚循环。页脚使用ACF选项页->LINK

如果页脚中的所有其他选项字段不在while循环中,则也会显示。我删除了主页面while循环,然后删除了页脚while循环,这只发生在灵活内容上,而我的其他带有循环的页面,不包含灵活内容的页面工作得很好。

1 个回复
SO网友:WebElaine

看起来您需要添加\'option\' 到您的页脚the_sub_field() 电话:

<p><a href="<?php the_sub_field(\'footer_link\', \'option\'); ?>"><?php the_sub_field(\'footer_link_name\', \'option\'); ?></a></p>

var_dump() 用于转储变量,而不是字符串,因此需要执行以下操作var_dump($test) 让那条线起作用。您可能在PHP日志文件中收到错误和警告,如果没有,您可以打开WP Debug来帮助找出哪些代码行导致了问题。

相关推荐

如何在WordPress unctions.php中将短代码值传递到Head

我正在尝试为wordpress帖子上的图表创建一个快捷代码。到目前为止,我已经使用了短代码,我可以看到短代码值正在被传递,但我需要知道的是如何将这些值传递到Google图表,以便正确工作。以下是我目前掌握的代码:function chart_shortcode($atts) { $a = shortcode_atts( array( \'value1\' => \'\', \'value2\' => \'\', \'value