Home › Forums › Add-ons › Repeater Field › Nested repeater, options page tags and terms.
Hi,
I am bulding a configurable faq page. You create the structure in ACF options page.
For example:
Topic 1
– tag 1
– tag 2
– tag 3
Topic 2
– tag 1
– tag 2
Topic 3
…
I use custom query with a custom post type faq, with categories from taxonomy kategoria_faq, term which is Topic 1 is retrived from options page (and that works fine). Then there is tag which is tag 1 for second level repeater (and this is where problem starts).
Can you please have a look at that scenario ?
So 1 level works fine, here is the code:
<?php if( have_rows('ustawienia_centrum_pomocy', 'option') ): ?>
<div id="politykaTabs">
<ul class="nav nav-tabs" role="tablist">
<!-- Nav tabs -->
<?php while ( have_rows('ustawienia_centrum_pomocy', 'option') ) : the_row(); ?>
<?php //ACF Fields setup
//$tytulZakladki = get_sub_field_object('tytul_zakladki_glownej', 'option');
$tytulZakladki = get_sub_field('tytul_zakladki_glownej', 'option');
$tytulZakladkiSlug = zamienione($tytulZakladki);
//Ustawianie aktywnej zakładki
if( get_sub_field('aktywna_zakladka', 'option')):
$tytulZakladkiActive = "active";
else:
$tytulZakladkiActive = "";
endif;
?>
<li role="presentation" class="<?php echo $tytulZakladkiActive; ?>"><a href="#<?php echo $tytulZakladkiSlug; ?>" aria-controls="<?php echo $tytulZakladki; ?>" role="tab" data-toggle="tab"><?php echo $tytulZakladki; ?></a></li>
<?php endwhile; ?>
</ul>
<!-- Tab panes -->
<div class="tab-content">
<?php $n = 0;
?>
<?php while ( have_rows('ustawienia_centrum_pomocy', 'option') ) : the_row(); ?>
<?php //ACF Fields setup
//$tytulZakladki = get_sub_field_object('tytul_zakladki_glownej', 'option');
$tytulZakladki = get_sub_field('tytul_zakladki_glownej', 'option');
$tytulZakladkiSlug = zamienione($tytulZakladki);
?>
<div role="tabpanel" class="tab-pane <?php if( get_sub_field('aktywna_zakladka', 'option')): ?> active<?php endif; ?>" id="<?php echo $tytulZakladkiSlug; ?>">
<div class="panel-group" id="accordion-<?php echo $tytulZakladkiSlug; ?>" role="tablist" aria-multiselectable="true">
<?php
/* Główna pętla */
$args = array(
'post_type' => 'faq',
'posts_per_page' => -1,
'orderby' => 'date',
'taxonomy' => 'kategoria_faq',
'term' => $tytulZakladkiSlug,
'order' => 'DESC',
);
$fullnewsloop = new WP_Query($args);
if($fullnewsloop->have_posts()):
$i = 1;
while($fullnewsloop->have_posts()): $fullnewsloop->the_post();
?>
<div class="panel panel-default">
<?php // Content to show ?>
</div>
<?php $i++; endwhile; endif;
wp_reset_query();
?>
</div>
</div>
<?php endwhile; ?>
</div>
</div>
<?php endif; ?>
Once I got to the second level, things start to complicate.
1. I have no access to $tytulZakladki, which is 1st level tabs title.
2. That is why content gets generated only for the first tab.
3. I need to limit listed posts by it’s tag (on the second level).
Here is the code for 2 repeaters that has issues 🙂
<?php if( have_rows('ustawienia_centrum_pomocy', 'option') ): ?>
<div id="politykaTabs">
<ul class="nav nav-tabs" role="tablist">
<?php //Generowanie zakładek 1GIEGO POZIOMU ?>
<?php while ( have_rows('ustawienia_centrum_pomocy', 'option') ) : the_row(); ?>
<?php //ACF Fields setup
//$tytulZakladki = get_sub_field_object('tytul_zakladki_glownej', 'option');
$tytulZakladki = get_sub_field('tytul_zakladki_glownej', 'option');
$tytulZakladkiSlug = zamienione($tytulZakladki);
//Ustawianie aktywnej zakładki
if( get_sub_field('aktywna_zakladka', 'option')):
$tytulZakladkiActive = "active";
else:
$tytulZakladkiActive = "";
endif;
?>
<li role="presentation" class="<?php echo $tytulZakladkiActive; ?>"><a href="#<?php echo $tytulZakladkiSlug; ?>" aria-controls="<?php echo $tytulZakladki; ?>" role="tab" data-toggle="tab"><?php echo $tytulZakladki; ?></a></li>
<?php endwhile; ?>
</ul>
<?php //Generowanie treści zakładek 1GIEGO POZIOMU ?>
<div class="tab-content">
<?php $n = 0; ?>
<?php while ( have_rows('ustawienia_centrum_pomocy', 'option') ) : the_row(); ?>
<?php //ACF Fields setup
//$tytulZakladki = get_sub_field_object('tytul_zakladki_glownej', 'option');
$tytulZakladki = get_sub_field('tytul_zakladki_glownej', 'option');
$tytulZakladkiSlug = zamienione($tytulZakladki);
//Ustawianie aktywnej zakładki
if( get_sub_field('aktywna_zakladka', 'option')):
$tytulZakladkiActive = "active";
else:
$tytulZakladkiActive = "";
endif;
?>
<div role="tabpanel" class="tab-pane <?php echo $tytulZakladkiActive; ?>" id="<?php echo $tytulZakladkiSlug; ?>">
<?php ////Generowanie zakładek 2GIEGO POZIOMU ?>
<?php if( have_rows('zakladki_2gi_poziom', 'option') ): ?>
<ul class="nav nav-tabs" role="tablist">
<!-- Nav tabs -->
<?php while ( have_rows('zakladki_2gi_poziom', 'option') ) : the_row(); ?>
<?php //ACF Fields setup
$tytulZakladkiSub = get_sub_field('tytul_zakladki_2gi_poziom', 'option');
$tytulZakladkiSlugSub = zamienione($tytulZakladkiSub);
//Ustawianie aktywnej zakładki
if( get_sub_field('aktywna_zakladka_2gi', 'option')):
$tytulZakladkiActiveSub = "active";
else:
$tytulZakladkiActiveSub = "";
endif;
?>
<li role="presentation" class="<?php echo $tytulZakladkiActiveSub; ?>"><a href="#<?php echo $tytulZakladkiSlugSub; ?>" aria-controls="<?php echo $tytulZakladkiSub; ?>" role="tab" data-toggle="tab"><?php echo $tytulZakladkiSub; ?></a></li>
<?php endwhile; ?>
</ul>
<?php endif; ?>
<?php ////Generowanie treści zakładek 2GIEGO POZIOMU ?>
<?php if( have_rows('zakladki_2gi_poziom', 'option') ): ?>
<div class="tab-content">
<?php while ( have_rows('zakladki_2gi_poziom', 'option') ) : the_row(); ?>
<?php //ACF Fields setup
$tytulZakladkiSub = get_sub_field('tytul_zakladki_2gi_poziom', 'option');
$tytulZakladkiSlugSub = zamienione($tytulZakladkiSub);
//Ustawianie aktywnej zakładki
if( get_sub_field('aktywna_zakladka_2gi', 'option')):
$tytulZakladkiActiveSub = "active";
else:
$tytulZakladkiActiveSub = "";
endif;
?>
<div role="tabpanel" class="tab-pane <?php echo $tytulZakladkiActiveSub; ?>" id="<?php echo $tytulZakladkiSlugSub; ?>-<?php echo $tytulZakladkiSlug; ?>">
<div class="panel-group" id="accordion-<?php echo $tytulZakladkiSlugSub; ?>" role="tablist" aria-multiselectable="true">
<?php
/* Główna pętla */
$args = array(
'post_type' => 'faq',
'posts_per_page' => -1,
'orderby' => 'date',
'taxonomy' => 'kategoria_faq',
'term' => $tytulZakladkiSlug,
//'tag' => 'ogolne',
'order' => 'DESC',
);
$fullnewsloop = new WP_Query($args);
if($fullnewsloop->have_posts()):
$i = 1;
while($fullnewsloop->have_posts()): $fullnewsloop->the_post();
?>
<div class="panel panel-default">
<?php // Content to show ?>
</div>
<?php $i++; endwhile; endif;
wp_reset_query();
?>
</div>
</div>
<?php endwhile; ?>
</div>
<?php endif; ?>
</div>
<?php endwhile; ?>
</div>
</div>
<?php endif; ?>
The topic ‘Nested repeater, options page tags and terms.’ is closed to new replies.
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users
Helping others is a great way to earn karma, gain badges and help ACF development!
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 Privacy Policy. If you continue to use this site, you consent to our use of cookies.