I’m using flexible content to create some items for a multi-page slideshow. I’d like to sprinkle some ads in between a few of the items (every 4th item) and then have the slideshow items continue. But I’m having issues getting it to work with the pagination.
Any thoughts?
Here is the code:
<!-- start slideshow-wrapper -->
<div class="slideshow-wrapper">
<?php if(get_query_var('page')) { $page = get_query_var('page'); } else { $page = 1; }
$row = 0;
$items_per_page = 1;
$items = get_field('slideshow_items');
$items_total = count($items);
$total = $items_total;
$pages = ceil($total / $items_per_page);
$min = (($page * $items_per_page) - $items_per_page) + 1;
$max = ($min + $items_per_page) - 1;
if(have_rows('slideshow_items')): ?>
<div class="slideshow">
<?php while(have_rows('slideshow_items')): the_row(); $row++; if($row < $min) { continue; } if($row > $max) { break; } ?>
<div class="slide">
<!-- slide content -->
</div>
<?php endwhile; ?>
</div>
<?php endif; ?>
</div>
<!-- end slideshow-wrapper -->
<div class="slideshow-buttons">
<?php echo paginate_links( array(
'base' => get_permalink() . '%#%' . '/',
'format' => '?page=%#%',
'current' => $page,
'total' => $pages,
'prev_text' => __('<span class="arrow">‹</span'),
'next_text' => __('<span class="arrow">›</span>')
)); ?>
<div class="page-buttons prev disabled"><span class="arrow">‹</span></div>
<div class="page-buttons next disabled"><span class="arrow">›</span></div>
</div>
I don’t see where you’re trying to insert these rows, but given what I so see. You’re going to need to adjust those counts, $total, $pages, $min, $max, to account for those extra rows you want to insert.
Personally, I would look at this
$items = get_field('slideshow_items');
This is actually returning an array with all of the rows. I would then insert my extra rows directly into this array using the same format and then to all of the work based on the new array. You can see what’s in it by
echo '<pre>'; print_r($items); echo '</pre>';
once you’ve added your new items then you can loop through the array rather than using the have_rows() loop
foreach ($items as $item) {
// slider
}
Thanks @hube2! We’ll give it a try and post some feedback.
The topic ‘Flexible Content, Pagination and Injecting Ads’ 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.