WordPress 高级自定义字段库没有 return 数组

WordPress Advanced Custom Field gallery doesn't return an array

我安装了 ACF Plugin 并且在我的 post 中归档了一个画廊。我已经尝试了所有 these 文档,但仍然出现错误:

Invalid argument supplied for `foreach()`

发生这种情况是因为 for each 的输入不是数组!

你知道这有什么问题吗? 你认为我是否必须在定义自定义字段时设置一些内容?

<?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; ?>

我认为您的问题是因为您使用的是 get_field() 而不是 get_fields()。这样你就得不到数组。

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

的结果

以上所有调试都可以包含在如下内容中:

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

基本上,这会让您了解从该函数获得的数据的结构是什么,以及如何操作它以获得您需要的数据。