Простейшая пагинация для WordPress без плагинов

Пагинация (постраничный вывод) — очень удобный инструмент, который позволяет улучшить юзабилити сайта и его поведенческие факторы. Создавая сайт на WordPress вы можете столкнуться с необходимостью выводить материал постранично. Я нашел для себя простое решение.

Если на вашем блоге или сайте всего десяток материалов, то пагинация вам просто не нужна. Но если счет пошел на сотни и тысячи, то выводить такое количество постов на одной странице будет неправильным — такая страница будет долго грузиться, создавая нагрузку на хостинг. Поэтому необходимо разбить содержимое страницы на несколько, содержащих меньшее количество постов (3-10 и т. п.). Именно в этом случае нам потребуется постраничная пагинация.

Для решения задачи существуют плагины, но наш метод настолько прост, что использовать для пагинации плагин будет неоптимально. Дело в том, что в WordPress уже есть готовый механизм пагинации — функция paginate_links(). Его мы и задействуем. Вот код простейшей пагинации для WordPress


global $wp_query;
$big = 999999999;

$args = array(
'base' => str_replace( $big, '%#%', get_pagenum_link( $big ) )
,'format' => ''
,'current' => max( 1, get_query_var('paged') )
,'total' => $wp_query->max_num_pages
,'prev_next' => false
);

$result = paginate_links( $args );
$result = str_replace( '&paged=1', '', $result );
echo $result;

Единственное — необходимо в предпоследней строке заменить первый аргумен на актуальный для вашего сайта. У меня страница с категорией имеет вид site.ru/?cat=10. Но при выводе навигации первая страница имеет ссылку вида site.ru/?cat=10&paged=1 — а это, как вы понимаете, дубль страницы. Вот именно это мы и устраняем, заменяя &paged=1 на ничего :) У вас вместо &paged=1 может быть и /page/1 — зависит от настроек. Тогда этот параметр вы вставляете в препоследней строке вместо ‘&paged=1′ и дубля первой страницы не будет.

Если все сделано правильно, то в нужном месте вставляем этот код и получаем простейший вариант постраничной навигации вот в таком виде:

1 2 3 4 5

Осталось красиво оформить наши ссылки и получить что-то типа

Пагинация для WordPress без плагинов

Пагинация для WordPress без плагинов

Желаю успехов. Если возникнут проблемы — велком в комментарии :)

Меток нет. Похожие записи
Запись опубликована в рубрике WordPress. Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>