php - WordPress 高级自定义字段库不返回数组
问题描述
我已经ACF Plugin
安装并且我的帖子中有一个画廊。我已经尝试了所有这些文档,但仍然收到错误:
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()
此处的文档。尝试像只使用一样调试它get_fields()
,看看输出是什么。如果它是一个空数组,则意味着您正在调用该函数loop
并且它无法获取帖子ID。因此,通过手动设置 post id 来进行第二次测试get_fields(123);
并检查结果。如果没有结果,则该帖子有问题。如果有结果,那么您可以进行最终测试,检查get_fields(123, 'gallery')
.
上述所有调试都可以包含在以下内容中:
echo '<pre>';
print_r( get_fields(123) );
echo '</pre>';
基本上,这将使您了解从该函数获得的数据的结构是什么,以及如何操作它以获得所需的数据。
推荐阅读
- android - Android 如何将 FloatingActionButton 放在正确的位置?
- c# - UWP - 动态加载 resw 资源文件
- plugins - Babel:replaceWithSourceString 给出意外的令牌 (1:1)
- python - 如何将直方图轴设置为始终为整数?
- javascript - Is there a way to make a solid div with 3 transparent boxes in it?
- php - PHP:从 FileZilla 服务器获取文件
- teamcity - TeamCity 的 DotTrace 插件 - 进程过滤器不排除 nunit3-console.exe
- c# - 在 MVC 中异步返回文件
- x86-64 - #GP 在某些 ISR、APIC 和 PIT 上不发送 IRQ
- php - 相关的下拉 Jquery 选项列表 JSON 错误