Пэйджинация — это разбивка категорий (таксономий) на страницы, либо разбивка поста (страницы) на несколько страниц.
Пэйджинация записей категории
Для вставки пэйджинации вида «Предыдущая следующая страница» вставить код
<div class="nav"> <div id="nav-left"><?php previous_posts_link('<    Предыдущие записи'); ?></div> <div id="nav-right"><?php next_posts_link('Следующие записи    >','') ?></div> </div>
Для вставки пэйджинации в виде номеров страниц
<div class="nav"> <?php $nav = get_the_posts_pagination( array( 'end_size' => 1, // количество страниц на концах 'mid_size' => 2, // количество страниц вокруг текущей 'prev_text' => __( '< Назад', 'textdomain' ), 'next_text' => __( 'Вперед >', 'textdomain' ), )); $nav = preg_replace('~<h2.*?h2>~', '', $nav); echo $nav; ?> </div>
CSS
.nav-links { width: 100%; padding: 8px 0 12px 0; } .nav-links a, .page-numbers.current, .page-numbers.dots { float: none !important; padding: 8px 1% 12px 1%; }
Пэйджинация страницы
Пэйджинация страницы — разбивка страницы на несколько подстраниц. Для того чтобы разделить слишком длинный текст (например: рассказ, или книга).
Выводить данную функцию надо в шаблоне записи и страницы, в цикле вывода while.
<?php wp_link_pages(); ?>
Для того чтобы в редакторе появилась кнопка разбивки на подстраницы надо добавить следующий код в functions.php
// Кнопка разбивки поста на несколько страниц add_filter('mce_buttons', 'mce_page_break'); function mce_page_break( $mce_buttons ){ $pos = array_search('wp_more', $mce_buttons, true); if( $pos !== false ) { $buttons = array_slice( $mce_buttons, 0, $pos ); $buttons[] = 'wp_page'; $mce_buttons = array_merge( $buttons, array_slice($mce_buttons, $pos) ); } return $mce_buttons; }
<!- -nextpage- -> (убрать пробел между дефисами)
Пэйджинация комментариев
<?php paginate_comments_links(); ?>
Пэйджинация в шаблоне автора (author.php)
Если использовать измененный вывод записей на странице автора, т.е. добавить вывод пользовательских типов записей, то происходит нарушение стандартной пэйджинации. Происходит это из-за того, что функция WP max_num_pages именно в шаблоне author.php считает только posts(блоговый движок). Надо расширить функцию max_num_pages для шаблона автора добавив следующий код в functions и указав название произвольного типа записей.
function custom_author_archive( &$query ) { if ($query->is_author) $query->set( 'post_type', array( 'post', 'articles' ) ); } add_action( 'pre_get_posts', 'custom_author_archive' );
И в самом вызове цикла должна быть такой параметр пэйджинации
'paged' => ( get_query_var('paged') ? get_query_var('paged') : 1),