Как изменить количество элементов в пагинации в 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');
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос


В WooCommerce количество товаров на странице каталога управляется параметром
posts_per_pageосновного запроса. Самый простой способ изменить его — фильтрloop_shop_per_page. Он влияет на архив магазина, категории и другие product archives.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); } });
Не меняйте это через шаблон пагинации: пагинация только выводит ссылки, а количество элементов задаётся запросом. Если на сайте есть настройка «Товаров в ряд» или кастомайзер темы, она может переопределять значение. Также проверьте плагины фильтрации/сортировки: они иногда отправляют своё
per_pageчерез AJAX.Перед внедрением на рабочем сайте проверьте решение на копии или хотя бы сделайте резервную копию изменяемого файла. После правки включите отображение ошибок, откройте проблемную страницу в обычном и приватном окне, проверьте консоль браузера и логи PHP. Если задача связана с WordPress, WooCommerce или ACF, дополнительно проверьте поведение после очистки кэша и после выхода из админки: часть ошибок видна только для незалогиненного пользователя.
Если код работает только в одном шаблоне, лучше не оставлять его разрозненно в нескольких файлах. Вынесите повторяемую логику в функцию, небольшой плагин или template part, а в шаблоне оставьте только вызов. Так проще поддерживать решение после обновления темы, плагинов и PHP.