Page 1 of 1

the foreach in the loop returns bool(false) though array is

Posted: Sat Aug 30, 2014 11:49 pm
by littleangel
in my code below the **data is extracted correctly for the first foreach but doesn't return anything for 2nd foreach though selected one present inside the 2nd foreach** i still get the error Warning: Invalid argument supplied for foreach() for line `foreach ($authorlist as $post)`... however the 2nd foreach returns data correctly as soon as i remove the first foreach loop.

below is my code

Code: Select all

 <?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;
    ?>
i did var_dump($authorlist) ...it returns bool(false) as long as foreach ($booklist as $post) loop is present. The moment i remove that loop then the dump shows the data of the authorlist correctly...how to get both the loops working together.

u can see the output here http://myproject.byethost7.com/wp/?page_id=6

Re: the foreach in the loop returns bool(false) though array

Posted: Sun Aug 31, 2014 6:54 am
by social_experiment

Code: Select all

<?php
$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];
?>
what are your results if you comment the wp_reset_postdata() function after the first foreach loop?