从数组特定子数组提取数据失败:WordPress中foreach无输出
问题解决方法
你的原循环没输出,是因为遍历的对象错了——你遍历的是整个顶层数组,而目标文件数据在顶层数组的value子数组里。
修正后的代码
如果value下只有一个文件(像你给出的数组那样),可以直接访问:
// 先验证数据存在性,避免报错 if (isset($arrayOBJ['value']) && is_array($arrayOBJ['value']) && !empty($arrayOBJ['value'][0])) { $fileItem = $arrayOBJ['value'][0]; // 用WordPress安全函数处理输出,避免XSS风险 echo '<li><a href="' . esc_url($fileItem['file']) . '">' . esc_html($fileItem['file_title']) . '</a></li>'; }
如果value下可能有多个文件,需要遍历value子数组:
if (isset($arrayOBJ['value']) && is_array($arrayOBJ['value'])) { foreach ($arrayOBJ['value'] as $fileItem) { // 确保每个子项的必要字段存在 if (isset($fileItem['file'], $fileItem['file_title'])) { echo '<li><a href="' . esc_url($fileItem['file']) . '">' . esc_html($fileItem['file_title']) . '</a></li>'; } } }
原代码问题说明
你之前的foreach($arrayOBJ as $value => $file)是遍历顶层数组的所有键值对(比如ID、key这些),循环里的$file根本不是你要的文件数据,所以不会输出预期的列表项。
内容的提问来源于stack exchange,提问作者Jess McKenzie
相关产品推荐
相关产品推荐

