Advanced Custom Fields это ‘must have’ плагин для создания любого сайта на Worpdress. Он позволяет с лёгкостью создавать, управлять и выводить произвольные поля в любом месте вашего шаблона. И его функционал можно ещё больше расширить используя дополнение Repeater Field. Но страница на которой используется Repeater может получится слишком большой, если вы используете много записей и возможно вам придётся использовать для неё пагинацию. И сейчас я покажу вам как это сделать.
В этом примере, мы будем добавлять пагинацию к полю image_gallery, с дочерним полем image которое содержит объект изображения. Наш Repeater будет на странице с ссылкой /gallery.
На странице будет выведено 10 изображений и ссылки под ними позволят пользователю переходить по страницам галереи. Наши ссылки будут иметь вид /gallery/2/, /gallery/3/ и т.д.
Ну и собственно сам код:
<?php /* * Paginate Advanced Custom Field repeater */ if( get_query_var('page') ) { $page = get_query_var( 'page' ); } else { $page = 1; } // Variables $row = 0; $images_per_page = 10; // How many images to display on each page $images = get_field( 'image_gallery' ); $total = count( $images ); $pages = ceil( $total / $images_per_page ); $min = ( ( $page * $images_per_page ) - $images_per_page ) + 1; $max = ( $min + $images_per_page ) - 1; // ACF Loop if( have_rows( 'image_gallery' ) ) : ?> <?php while( have_rows( 'image_gallery' ) ): the_row(); $row++; // Ignore this image if $row is lower than $min if($row < $min) { continue; } // Stop loop completely if $row is higher than $max if($row > $max) { break; } ?> <?php $img_obj = get_sub_field( 'image' ); ?> <a href="<?php echo $img_obj['sizes']['large']; ?>"> <img src="<?php echo $img_obj['sizes']['thumbnail']; ?>" alt=""> </a> <?php endwhile; // Pagination echo paginate_links( array( 'base' => get_permalink() . '%#%' . '/', 'format' => '?page=%#%', 'current' => $page, 'total' => $pages ) ); ?> <?php else: ?> No images found <?php endif; ?>
Источник: http://jonathannicol.com/blog/2014/03/06/paginating-an-advanced-custom-fields-repeater/