✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Спеціальна розбивка на сторінки WordPress

15

Взагалі кажучи, щоразу, коли я працюю з розбивкою на сторінки спеціального типу публікації, це роблю шляхом написання спеціального запиту за допомогою WP_Query, а потім виклику wp_reset_postdata() у кінці The Loop.

Я все ще вважаю, що це має місце, але є простіше рішення, яке ви можете реалізувати за допомогою спеціального хука, який надає 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, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі