Как изменить количество элементов в пагинации в Woocommerce?

Ссылка скопирована
1 ответ

Подскажите пожалуйста, как изменить количество элементов в пагинации в Woocommerce?

Сейчас при открытии каталога в пагинации отображаются слишком много страниц.

Как изменить количество элементов в пагинации в Woocommerce?

Я хочу чтобы отображалось несколько страниц, например вот так:

Как изменить количество элементов в пагинации в Woocommerce?

Пробовал добавлять функцию:

function custom_woocommerce_pagination_links($args) {     $args['mid_size'] = 4; // Set the desired number of links to display before and after the current page     return $args; } add_filter('paginate_links', 'custom_woocommerce_pagination_links');

function custom_woocommerce_pagination_links($args) { $args['mid_size'] = 4; // Set the desired number of links to display before and after the current page return $args; } add_filter('paginate_links', 'custom_woocommerce_pagination_links');

Но он ломает работу каталога.
Буду благодарен за любую информацию.

Дополнительно:

Салам! попробуйте так -
function custom_woocommerce_pagination_args($args) {
$args['end_size'] = 1; // Количество элементов в начале и конце пагинации
$args['mid_size'] = 0; // Количество элементов в середине пагинации
$args['prev_next'] = true; // Отображение кнопок "Предыдущая" и "Следующая"
$args['prev_text'] = '«'; // Текст кнопки "Предыдущая"
$args['next_text'] = '»'; // Текст кнопки "Следующая"
$args['type'] = 'list'; // Вид пагинации (list - список, numbers - числа, prev_next - кнопки "Предыдущая" и "Следующая")

// Установите желаемое количество элементов на страницу
$args['per_page'] = 12;

return $args;
}
add_filter('woocommerce_pagination_args', 'custom_woocommerce_pagination_args', 10, 1);

  • Спасибо, но я уже нашел решение:
    function custom_woocommerce_pagination_args($args) {     $args['end_size'] = 1;     $args['mid_size'] = 1;     return $args; } add_filter('woocommerce_pagination_args', 'custom_woocommerce_pagination_args');

    function custom_woocommerce_pagination_args($args) { $args['end_size'] = 1; $args['mid_size'] = 1; return $args; } add_filter('woocommerce_pagination_args', 'custom_woocommerce_pagination_args');

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Артём Dev Ответ

В WooCommerce количество товаров на странице каталога управляется параметром posts_per_page основного запроса. Самый простой способ изменить его — фильтр loop_shop_per_page. Он влияет на архив магазина, категории и другие product archives.

add_filter('loop_shop_per_page', function ($per_page) {
    return 24;
}, 20);

add_filter('loop_shop_per_page', function ($per_page) { return 24; }, 20);

Код добавляют в functions.php дочерней темы или в небольшой плагин. После изменения проверьте страницу магазина и категорию товара: количество карточек до пагинации должно стать 24.

Если нужно разное количество для разных архивов, используйте pre_get_posts:

add_action('pre_get_posts', function (WP_Query $query) {
    if (is_admin() || ! $query->is_main_query()) {
        return;
    }
 
    if (is_shop()) {
        $query->set('posts_per_page', 24);
    }
 
    if (is_product_category()) {
        $query->set('posts_per_page', 12);
    }
});

add_action('pre_get_posts', function (WP_Query $query) { if (is_admin() || ! $query->is_main_query()) { return; } if (is_shop()) { $query->set('posts_per_page', 24); } if (is_product_category()) { $query->set('posts_per_page', 12); } });

Не меняйте это через шаблон пагинации: пагинация только выводит ссылки, а количество элементов задаётся запросом. Если на сайте есть настройка «Товаров в ряд» или кастомайзер темы, она может переопределять значение. Также проверьте плагины фильтрации/сортировки: они иногда отправляют своё per_page через AJAX.

Перед внедрением на рабочем сайте проверьте решение на копии или хотя бы сделайте резервную копию изменяемого файла. После правки включите отображение ошибок, откройте проблемную страницу в обычном и приватном окне, проверьте консоль браузера и логи PHP. Если задача связана с WordPress, WooCommerce или ACF, дополнительно проверьте поведение после очистки кэша и после выхода из админки: часть ошибок видна только для незалогиненного пользователя.

Если код работает только в одном шаблоне, лучше не оставлять его разрозненно в нескольких файлах. Вынесите повторяемую логику в функцию, небольшой плагин или template part, а в шаблоне оставьте только вызов. Так проще поддерживать решение после обновления темы, плагинов и PHP.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

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

Вам также может быть интересно