Support

Account

Home Forums Add-ons Flexible Content Field Retrieve repeater data from flexible content row

Unread

Retrieve repeater data from flexible content row

    • doopsi

    • November 25, 2018 at 4:49 am

    Hi,
    I built a custom layout form my webpage.

    I have a flexible content with three layouts:

    1. text block – Editor Wysiwyg
    2. video block – oEmbed
    3. slider block – repeater field
    3.1 slide – image field
    3.2 caption – text field

    Everytime a create a slider, the user can open an overlay that shows all of the images in the slider.

    Here’s my code

    
    
    <?php
    if( have_rows('content') ): $i = 0;
    
    // loop through the rows of data
    while ( have_rows('content') ) : the_row();
    
    if( get_row_layout() == 'text' ):
    
    $content = get_sub_field('text-block');
    
    echo '<div class="text-block"> ' . $content . ' </div>';
    
    elseif( get_row_layout() == 'video' ): 
    
    $video = get_sub_field('video-block');
    
    echo '<div class="embed-video"> '. $video . ' </div>';
    
    elseif( get_row_layout() == 'slider' ): $i++ ;
    
    echo '<div class="bxslider" id="slider-' . $i . '">';
    
    // check if the nested repeater field has rows of data
    
    if( have_rows('slider-block') ):
    
    // loop through the rows of data
    while ( have_rows('slider-block') ) : the_row();
    
    $image = get_sub_field('slide');
    $caption = get_sub_field('caption');
    
    echo '<div>'; 
    if( get_field('caption') ): 
    echo '<div class="image-caption"> ' . $caption .' </div>';
    endif;
    echo '</div>';
    endwhile;
    
    echo '</div>';
    
    echo '<div id="myNav" class="all-overlay">
    [url=javascript:void(0)]×
    <div class="overlay-content">';
    while ( have_rows('slider-block') ) : the_row();
    $image = get_sub_field('slide');
    $caption = get_sub_field('caption');
    
    echo '[url=#slider-]<div class="slider-thumbnail"></div>';
    endwhile;
    echo '</div> 
    
    </div>
    
    <p class="view-all" style="cursor:pointer" onclick="openNav()">View</p>';
    
    endif; 
    
    endif;
    
    endwhile;
    
    else :
    
    // no layouts found
    
    endif;
    ?>
    

    I found a bug: when I display more than one slider, the images displayed in my overlay belong always to the first slider.

    Any hint?

    Thanks

    Rowan

Viewing 1 post (of 1 total)

You must be logged in to reply to this topic.

We use cookies to offer you a better browsing experience, analyze site traffic and personalize content. Read about how we use cookies and how you can control them in our Cookie Policy. If you continue to use this site, you consent to our use of cookies.