2014-08-31 12 views
2

在數據低於我代碼正確地提取用於第一foreach ($booklist as $post),不過雖然選擇的一個存在於第二foreach內不返回第二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的數據。如何讓兩個循環一起工作?

你可以看到輸出here

+0

請不要加倍張貼。我已經在WPSE上回答了您的問題。 – 2014-08-31 07:23:30

回答

1

設置$post作爲行所有環路:foreach ($all as $post)foreach ($booklist as $post)foreach ($authorlist as $post)。所以$post將改變所有的前景。更改變量名稱。