Search code examples
advanced-custom-fieldsnested-repeater

Advanced Custom Field post object inside 2 nested repeater is not working


I am trying to achieve like this.. I am trying to show a post object as repeater inside 2 nested repeater field.. I am using this repeater and post object in a page template called page-bagels.php . These 2 repeater showing the 2 row as output as expected. But the post object is not showing or not returning value. Rather it is returning value of the page. Like where I have used it is returning the page title and not returning the post object title. My code is as below

    <?php while ( have_posts() ) : the_post(); ?>

    <div class="main-content">
        <div class="main-wrap">


            <div class="col-sm-12">
                <div class="breadcrumbs">
                    <?php if(function_exists('bcn_display'))
                {
                    bcn_display();
                }?>
                  </div>  <!-- breadcrambs ends here -->

            </div><!-- col-sm-12 ends here -->


            <?php 

                // check for rows (parent repeater)
                if( have_rows('product_page') ): ?>

            <div class="col-lg-12 row product-row">

                <?php 

                    // loop through rows (parent repeater)
                    while( have_rows('product_page') ): the_row(); ?>

                <div class="col-sm-12">
                            <div class="marque">
                                <span class="brand-lg"><img src="<?php the_sub_field('brand_image'); ?>" /></span>
                            </div>
                        </div>


                <?php 

                            // check for rows (sub repeater)
                            if( have_rows('post_repeater') ): ?>




                <div class="col-sm-12 product-item-row">

                <?php 
                        // loop through rows (sub repeater)
                    while( have_rows('post_repeater') ): the_row();?>

                <div class="col-sm-3 product-item">


                     <?php
                        $postobject = get_sub_field('product_post'); ?>  

                    <a href="<?php $postURL = get_permalink($postobject->ID);?>">
                        <img class="product-img" src="<?php bloginfo('template_directory');?>/images/product-images/321600_moelleux_blanc_trepais.png" width="100%" />
                        <p class="product-name"><?php the_title();?></p>
                        <p class="product-seemore">See More</p>
                    </a>



                </div><!-- col ends here -->

                 <?php endwhile; ?>

                </div><!-- col Product Items row here -->

                <?php endif; //if( get_sub_field('items') ): ?>

                <?php endwhile; // while( has_sub_field('to-do_lists') ): ?>

            </div><!-- col lg 12 ends here or row ends here -->


            <?php endif; // if( get_field('to-do_lists') ): ?>

            <?php endwhile; // end of the loop. ?>  





                <div class="lnk-top">
    <a href="#"><span class="icon-arrow-up up-arrow"></span><br>Top</a>
</div>


        </div><!-- main wrap ends here -->

        <div class="clr"></div>

    </div><!-- main content ends here -->

So in this code you can see the post object is also a repeater.. So it means I am using 3 repeaters. If you see the code you will get it

Here is the output I am getting http://ahsanurrahman.com/myprojects/cms/wp/gadoua/en/bagels/

So any help is appreciated.


Solution

  • I was able to you Fix it.. See my code below

    <?php while ( have_posts() ) : the_post(); ?>
    
        <div class="main-content">
            <div class="main-wrap">
    
    
                <div class="col-sm-12">
                    <div class="breadcrumbs">
                        <?php if(function_exists('bcn_display'))
                    {
                        bcn_display();
                    }?>
                      </div>  <!-- breadcrambs ends here -->
    
                </div><!-- col-sm-12 ends here -->
    
    
                <?php 
    
                    // check for rows (parent repeater)
                    if( have_rows('product_page') ): ?>
    
                <div class="col-lg-12 row product-row">
    
                    <?php 
    
                        // loop through rows (parent repeater)
                        while( have_rows('product_page') ): the_row(); ?>
    
                    <div class="col-sm-12">
                                <div class="marque">
                                    <span class="brand-lg"><img src="<?php the_sub_field('brand_image'); ?>" /></span>
                                </div>
                            </div>
    
    
                    <?php 
    
                                // check for rows (sub repeater)
                                if( have_rows('post_repeater') ): ?>
    
    
    
    
                    <div class="col-sm-12 product-item-row">
    
                    <?php 
                            // loop through rows (sub repeater)
                        while( have_rows('post_repeater') ): the_row();?>
    
                    <div class="col-sm-3 product-item">
    
    
    
                         <?php
                            $postobject = get_sub_field('product_post'); 
                            $image = wp_get_attachment_image_src(get_post_thumbnail_id( $postobject->ID ),'medium');
                            //echo "<pre>";print_r($postobject); echo"</pre>";
                            $image = $image[0];
                            //$new = get_field('new_product_item');
                            //echo $image;
                            ?>  
    
    
                        <a href="<?php echo get_permalink($postobject->ID);?>">
    
                             <?php if ( get_field( 'new_product_item',$postobject->ID) ): ?>
    
                              <img class="new-label-en" src="<?php bloginfo('template_directory');?>/images/label-en.png" />
                            <img class="new-label-fr" src="<?php bloginfo('template_directory');?>/images/label-fr.png" />
                             <img class="product-img" src="<?php echo $image;?>" width="100%" height="100%" />
                             <p class="product-name"><?php echo $postobject->post_title;?></p>
                            <p class="product-seemore"><?php echo $product_details_link_text;?></p>
    
                        <?php else: // field_name returned false ?>
    
    
                            <img class="product-img" src="<?php echo $image;?>" width="100%" height="100%" />
                            <p class="product-name"><?php echo $postobject->post_title;?></p>
                            <p class="product-seemore"><?php echo $product_details_link_text;?></p>
    
    
                        </a>
    
                        <?php endif; //if( get_sub_field): ?>
    
                    </div><!-- col ends here -->
    
                     <?php endwhile; ?>
    
    
    
                    </div><!-- col Product Items row here -->
    
                    <?php endif; //if( get_sub_field('items') ): ?>
    
                    <?php endwhile; // while( has_sub_field('to-do_lists') ): ?>
    
                </div><!-- col lg 12 ends here or row ends here -->
    
    
                <?php endif; // if( get_field('to-do_lists') ): ?>
    
                <?php endwhile; // end of the loop. ?>  
    
    
    
    
    
                    <div class="lnk-top">
        <a href="#"><span class="icon-arrow-up up-arrow"></span><br>Top</a>
    </div>
    
    
            </div><!-- main wrap ends here -->
    
            <div class="clr"></div>
    
        </div><!-- main content ends here -->