从函数调用ACF数据。php

时间:2017-03-07 作者:DavSev

我的目标是增加WooCommerce/my-account 页面a选择输入类型。选择字段的选项将由ACF选项页面中的ACF repeater控制,并将插入到wp_usermeta 桌子

我在函数中使用此代码。php文件。

    while ( have_rows(\'group_email\') ) : the_row(); 
    ?>      
        <option>
    <?php
         echo the_sub_field(\'email_group_id\'); 
    ?>
        </option>
    <?php

    endwhile;
由于某种原因,我没有得到任何结果。如果我手动编写选项,我可以看到它们,而且效果很好。我使用的是ACF版本4.4.11中继器不是空的。

有什么问题吗?

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

功能。php文件不知道您希望将代码显示在前端的何处。您需要将代码放入模板页面(即woocommerce帐户页面)或使用woocommerce挂钩将其附加到该页面。

如果您决定最好将其保留在函数中,则需要将其添加到函数中才能正常工作。php。在这两种情况下,如果没有行,您可能希望将while语句包围在if语句中。否则会出现错误。

最后,因为你在重复你应该使用的字段

echo get_sub_field(\'email_group_id\'); 
如果您实际拥有的代码比您提供的多,并且在选项页面中,我也会在字段中添加“option”参数:

while ( have_rows(\'group_email\' , \'option\') ) : the_row(); 
?>      
    <option>
<?php
     echo get_sub_field(\'email_group_id\', \'option\'); 
?>
    </option>
<?php

endwhile;
这可能值得一试。

SO网友:Aniruddha Gawade

当你不在的时候The Loop 您必须将页面ID作为参数传递给ACF函数。

while ( have_rows(\'group_email\', $id) ) : the_row(); 
?>      
    <option>
<?php
     echo the_sub_field(\'email_group_id\', $id); 
?>
    </option>
<?php

endwhile;
请参阅文档:https://www.advancedcustomfields.com/resources/have_rows/