✅ Новости WEB и WordPress, темы, плагины. Здесь мы делимся советами и лучшими решениями для веб-сайтов.

Разбивка на страницы пользовательского типа записей WordPress

36

Вообще говоря, всякий раз, когда я работаю с пагинацией пользовательских типов сообщений, это делается путем написания пользовательского запроса с использованием WP_Query и последующего вызова wp_reset_postdata() в конце цикла.

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

В частности, я говорю о хуке pre_get_posts. В Справочнике по коду вы можете видеть, что это определяется как:

Срабатывает после создания объекта переменной запроса, но до фактического запуска запроса.

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

Под этим я подразумеваю, что нам нужно посмотреть на свойство post_type и значение posts_per_page. Для этого вы можете реализовать его следующим образом :

<?php

use WP_Query;

add_action('pre_get_posts', __NAMESPACE__. 'customPostTypePagination');
/**
 * If we're on the 'acme-post-type' page, then adjusts pagination so there are only two posts per page. This will 
 * affect pagination so we can use built-in pagination links to easily page through the content.
 *
 * @param WP_Query the instance of the query object that contains information to populate the template.
 *
 * @return WP_Query an unmodified version of the query object or a modified version if we're on the acme post-type.
 */
function customPostTypePagination(WP_Query $query)
{
  if (isset($query->query['post_type']) && 'acme-post-type' == $query->query['post_type']) {
    $query->set('posts_per_page', 2);
  }
}

Приведенный выше код не является объектно-ориентированным (если бы это было так, я бы создал подписчика и класс, отвечающий за обработку логики в функции), но вы можете увидеть, как его настроить в самом простом виде.

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

Источник записи: tommcfarlin.com

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее