在下面的代码中,第一次正确提取数据foreach
, 但第二次没有返回任何内容foreach
虽然选择了一个,但在第二个foreach
. 我还是会出错
警告:为第行的foreach()提供的参数无效foreach ($authorlist as $post)
...
然而,第二个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)
它回来了bool(false)
只要foreach ($booklist as $post)
存在循环。当我删除该循环时,转储将显示authorlist
正确地如何使两个循环一起工作?您可以看到输出here
为每个仍不工作的foreach添加了unset和change$post
<?php
$all= get_posts(array(\'post_type\' => \'books\', \'numberposts\' => -1,));
echo "VAR_DUMP(all) <br>";
var_dump($all);
echo "<br>";
echo "<br>";
foreach ( $all as $post ): setup_postdata($post);
if (!empty($post))
{
$booklink = array();
$booklist = get_field(\'booklist\');
foreach ($booklist as $bookpost): setup_postdata($bookpost);
if (!empty($bookpost))
{
$booklink[] = strip_tags(get_field(\'booklink\',$bookpost));
}
endforeach;
wp_reset_postdata();
unset($bookpost);
echo "<br>";
echo "var dump for booklist";
echo "<br>";
var_dump( $booklist);
echo "<br>";
echo "<br>";
echo "booklink is - " . $booklink[0]."<br>";
$authorname = array();
$authorlist = get_field(\'authorlist\');
foreach ($authorlist as $authorpost): setup_postdata($authorpost);
if (!empty($authorpost))
{
$authorname[] = strip_tags(get_field(\'authorname\',$authorpost));
}
endforeach;
wp_reset_postdata();
unset($authorpost);
echo "<br>";
echo "var dump for authorlist";
echo "<br>";
var_dump( $authorlist);
echo "<br>";
echo "<br>";
echo "authorname is - ".$authorname[0]."<br>";
}
endforeach;
wp_reset_postdata();
unset($post);
?>