在我下面的代码中,第一个foreach ($booklist as $post)
的数据被正确提取,但第二个foreach ($authorlist as $post)
的数据没有返回任何内容,尽管选择了一个存在于第二个foreach
中的数据。我仍然得到错误
警告:为
foreach ($authorlist as $post)
行的foreach()提供的参数无效。。。
然而,一旦我移除第一个foreach
循环,第二个foreach
就正确地返回数据。
下面是我的代码
<?php
$all= get_posts(array('post_type' => 'books', 'numberposts' => -1,));
foreach ( $all as $post ) : setup_postdata($post);
if (!empty($post))
{
$booklink = array();
$booklist = get_field('booklist');
foreach ($booklist as $post) : setup_postdata($post);
if (!empty($post))
{
$booklink[] = strip_tags(get_field('booklink',$post));
}
endforeach;
wp_reset_postdata();
echo $booklink[0];
$authorname = array();
$authorlist = get_field('authorlist');
foreach ($authorlist as $post) : setup_postdata($post);
if (!empty($post))
{
$authorname[] = strip_tags(get_field('authorname',$post));
}
endforeach;
wp_reset_postdata();
echo $authorname[0];
}
endforeach;
?>
我执行了var_dump($authorlist)
,只要存在foreach ($booklist as $post)
循环,它就会返回bool(false)
。当我移除那个循环时,转储会正确地显示authorlist
的数据。如何使两个循环协同工作?
您可以在这里看到输出
您将$post
设置为所有循环的行:foreach ( $all as $post )
、foreach ($booklist as $post)
和foreach ($authorlist as $post)
。因此CCD_ 15将在所有前臂中改变。更改变量名称。