Получать рассылку по электронной почте

Введите свой email-адрес:

Delivered by FeedBurner

Навигация

Постраничная навигация WordPress без использования плагина

пагинация-wp

Старый способ – использование функции paginate_links

На самом деле в Wordpess давно уже  присутствуют некие  средства  для  создания пагинации. Я  имею в виду   paginate_links(), появившуюся еще в WordPress 2.1, о чем, кстати, многие вообще не знали, используя плагины. С помощью этой функции вполне возможно сделать навигацию, правда кода получится не одна строчка, иногда это довольно сложный код. Если представить простой вариант, получится что-то подобное

paginate_links принимает в примере массив из параметров

Кроме того, нужно избавиться от лишней части '/page/1', появляющейся в конце адресной строки первой страницы, см. строчку 7 примера.

Как видите не очень просто пользоваться данным методом. Но есть и другое, альтернативное  решение.

Новый способ – функция the_posts_pagination

Разработчики позаботились о выходе функции  the_posts_pagination(), которая значительно удобнее рассмотренной ранее. Давайте посмотрим, как можно использовать ее на сайте.

Параметры, которые принимает the_posts_pagination()

show_all
Вывод полностью всех страниц. По умолчанию отключен (равен false).
prev_next
Предыдущая-Следующая. По умолчанию включен (true).
end_size
Количество страниц, которое отображается в начале и конце списка страниц. По умолчанию 1.
mid_size
Количество страниц, отображающихся слева  и справа от текущей. По умолчанию 1.
before_page_number
Произвольный текст или символ перед  номером каждой страницы. По умолчанию отсутствует.
after_page_number
Произвольный текст или символ после номера каждой страницы. По умолчанию отсутствует.
prev_text
Текст ссылки на предыдущую страницу.
next_text
Текст ссылки на следующую страницу
screen_reader_text
Параметр, содержащий информацию для устройств чтения с экрана (скринридеров), предназначенных для пользователей с ослабленным зрением. Для визуальных браузеров обычно задаются стили, скрывающие этот текст.

Не обязательно перечислять все параметры в скобках функции. Указываем выборочно те, которые представляют интерес или не указываем ничего – в этом случае  будут выводиться параметры по умолчанию.  Помещаем код с  the_posts_pagination в файл index.php темы WordPress после цикла, не забывая заключить в дескрипторы <?php ?>.

пагинация

Так выглядит стандартная навигация нового шаблона Twenty Fifteen (появившегося в версии 4.1.), созданная при помощи этой функции.

navigation

Классы, отвечающие за настройку внешнего вида

Функция генерирует html код, добавив к которому соответствующие стили, можно получить пользовательскую постраничную навигацию.

Итак, мы располагаем несколькими классами, для которых требуется создать правила в файле  style.css  темы WordPress.

навигация

Давайте представим, что на сайте требуется вывести навигацию таким образом, как изображено выше, тогда код CSS для указанных выше классов будет следующий.

Таким образом, как оказалось существует неплохая альтернатива использованию плагинов, что несомненно может пригодиться в некоторых ситуациях, когда их применение нежелательно.

Помимо пагинации (разбиению на страницы) рекомендую вам также использовать альтернативный вид навигации  – хлебные крошки, например реализованный с помощью плагина Prime Strategy Bread Crumb.

Понравилась статья?
Подпишитесь на RSS по e-mail
Поделитесь в социальных сетях
Вы можете также посмотреть
Комментарии
  1. Спасибо за статью.
    А как можно убрать или написать что-то другое в место Назад и Далее, html код отвечающий за это я не нашла .

    • За это отвечают параметры prev_text и next_text в кавычках вместо предыдущий и следующий пишете свой текст
      the_posts_pagination( array(
      'prev_text' => 'предыдущий',
      'next_text' => 'следующий',
      ) );

      • Спасибо за ответ.Если например twentyfourteen_paging_nav() функция пагинации, пишу внем ‘prev_text’ свой текст- не работает , в functions.php не нашла эту функцию. the_posts_pagination так тоже выводит страницы, но стили надо прописать снова. Наверное так и сделаю.

        • Ну, twentyfourteen_paging_nav() специфическая ф-ция темы twentyfourteen, она определяется в файле template-tags.php (themes/twentyfourteen/inc/template-tags.php), если в этом файле исправить prev_text все работает

          • themes/twentyfourteen/inc/template-tags.php нет ни слово на русском, у меня сайт будет на другом языке, поэтому мне надо все слова (например- добавить комментарии) написать на этом языке. Редактирую ru_RU.po этой темы, но ничего не меняется. Вопрос конечно же не по этой теме, но может Вы знаете как это реализовать. Спасибо !

          • Если для вас это все еще актуально. Кроме файла po должен еще изменяться и файл c расширением mo, переведенные строки читаются из этого файла. Поэтому редактировать можно, например, с помощью программы Poedit, так как она заменяет при сохранении и файл .mo на обновленный. Может в этом была причина?

  2. День добрый! Подскажите пожалуйста, установил всё правильно, но навигация работает только на странице категорий, на главной не работает. Сам пейджер листает, строка урл меняется, но страница остаётся первая со статьями

  3. Подскажи, как вообще удалить
    ‘prev_text’ => ‘предыдущий’,
    ‘next_text’ => ‘следующий’,

  4. Добрый день. Подскажите, как убрать строку “Навигация по записям”? Она у меня отображается на экране вместе с навигацией.

  5. Вопрос такой, у меня не работает постраничная навигация новостей, когда щелкает на след. страницу, не страница не переходит на след. , а исчезает одна новость, вот мой args, может какай-то ошибка?

    $args = array(
    ‘paged’ => $paged,
    ‘numberposts’ => 14,
    ‘offset’ => 0,
    ‘orderby’ => ‘post_date’,
    ‘order’ => ‘DESC’,
    ‘post_type’ => ‘post’,
    ‘offset’ => $paged,
    ‘cat’ => ‘3’,
    ‘post_status’ => ‘publish’,
    ‘suppress_filters’ => false );

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

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

*