Кастомный цикл широко используется в реализации вывода из базы данных различных типов записей. Особо часто применяется при выводе постой на странице. Речь идет не о главной странице, а отдельной обычной странице. Это, когда возникает необходимость из определенной категории вывести посты на статичной странице.
Да и в целом кастомный цикл поможет вывести новые посты в сайдбаре, или похожие статьи в конце материала и т.д. Применений очень много и разной сложности. Давайте рассмотрим вывод постов на странице с пагинацией, то есть чтобы можно было по определенному количеству постов разбивать его на страницы.
Вывод постов на странице с пагинацией
В примере ничего сверхъестественного не используется, только стандартные функции WordPress. Сделайте шаблон страницы своей темы в дочерней теме. И поместите в него вот этот цикл. Только исправьте ID категории, из которой нужно вывести посты. В оформлении внешнего вида вам поможет CSS.
<?php $paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1; $query = new WP_Query( array( 'cat' => 5,45,//ID категории, из которой выводить посты 'posts_per_page' => 16,//количество постов 'paged' => $paged ) ); ?> <?php if ( $query->have_posts() ) : ?> <?php while ( $query->have_posts() ) : $query->the_post(); ?> <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a> <h2><a href="<?php the_permalink(); ?>" title="Перейти"><?php the_title(); ?></a></h2> <?php the_excerpt(); ?> <?php echo get_the_date(); ?> <?php endwhile; ?> <!-- пагинация --> <div class="pagination"> <?php echo paginate_links( array( 'base' => str_replace( 999999999, '%#%', esc_url( get_pagenum_link( 999999999 ) ) ), 'total' => $query->max_num_pages, 'current' => max( 1, get_query_var( 'paged' ) ), 'format' => '?paged=%#%', 'show_all' => false, 'type' => 'plain', 'end_size' => 2, 'mid_size' => 1, 'prev_next' => true, 'prev_text' => sprintf( '<i></i> %1$s', __( 'Назад', 'text-domain' ) ), 'next_text' => sprintf( '%1$s <i></i>', __( 'Дальше', 'text-domain' ) ), 'add_args' => false, 'add_fragment' => '', ) ); ?> </div> <?php wp_reset_postdata(); ?> <?php else : ?> <p><?php _e( 'К сожалению, ни один из постов не подошел под ваши критерии.' ); ?></p> <?php endif; ?>
А как сделать пагинацию на странице с выводом пользователmских полей с помощью модуля ACF ?
Попробуйте код из этой статьи wordsmall.ru/sajtostroeni...ost-type-ui.html