我正在编写一个简单的标签导航,我正面临这个问题:
函数print_office
仅在我在foreach内部时才有效。
//Doesn't work
print_office($loop->posts[0], true);
//Works
foreach ($loop->posts as $index => $post) {
print_office($post, true);
}
print_office
功能使用高级自定义字段' get_field('field_name')
。
编辑:
我已将var_dump($office)
放入print_office
。
在外面时调用foreach
我得到:
object(WP_Post)#317 (24) {
["ID"]=> int(7)
["post_author"]=> string(1) "1"
[.....] //More fields;
}
当在内部中调用<{1}}时,我得到:
foreach
唯一的区别是:FOREACH:object(WP_Post)#317 (24) {
["ID"]=> int(7)
["post_author"]=> string(1) "1"
[.....] //More fields;
}
而非FOREACH:object
。
答案 0 :(得分:2)
问题在于,当它不起作用时,没有$ post变量,get_field(&#39; field_name&#39;)返回当前帖子的字段,这实际上是$交
答案 1 :(得分:0)
看起来$loop->posts
是一个关联数组(如JS对象)或$loop->posts
扩展Traversable
接口但不扩展ArrayAccess
接口。
如果你的数组看起来像这样:
<?php
$loop->posts = array(
'key1' => 'Post message 1',
'key2' => 'Post message 2'
);
?>
您无法通过$loop->posts[0]
访问“发布消息1”。但您可以通过$loop->posts['key1']