WordPress高级自定义字段库不返回数组

时间:2018-09-21 07:12:59

标签: php wordpress gallery advanced-custom-fields

我已安装ACF Plugin,并且在我的帖子中归档了一个图库。我已经尝试了所有these文档,但仍然收到错误消息:

Invalid argument supplied for `foreach()`

之所以会发生这种情况,是因为for的输入不是数组!

您有什么线索吗? 您认为在定义自定义字段时是否需要设置某些内容?

<?php 
    $images = get_field('mygall');
    $size = 'full'; // (thumbnail, medium, large, full or custom size)

    if( $images ): ?>
        <ul>
            <?php foreach( $images as $image ): ?>
                <li>
                    <?php echo wp_get_attachment_image( $image['ID'], $size ); ?>
                </li>
            <?php endforeach; ?>
        </ul>
<?php endif; ?>

1 个答案:

答案 0 :(得分:1)

我认为您的问题出在您使用get_field()而不是get_fields()的事实上。这样就不会得到数组。

如果仍然无法正常工作,请查看get_fields() here的文档。尝试像仅使用get_fields()一样对其进行调试,然后查看输出是什么。如果它是一个空数组,则意味着您正在从loop中调用该函数,并且它无法获取帖子ID。因此,请通过手动设置帖子ID(例如get_fields(123);)进行第二次测试,并检查结果。如果没有结果,则该帖子有问题。如果有结果,那么您可以进行最终测试,检查get_fields(123, 'gallery')的结果。

以上所有调试过程都可以包装为以下内容:

echo '<pre>';
    print_r( get_fields(123) );
echo '</pre>';

基本上,这将使您了解从此函数获取的数据的结构是什么,以及如何操纵数据以获取所需的信息。