HUSKY - Products Filter Professional for WooCommerce

Як виправити відображення нумерації сторінок з великою кількістю сторінок за допомогою фільтрації WOOF

Якщо ваша пагінація WooCommerce відображає неправильні номери сторінок при використанні фільтрів товарів WOOF (HUSKY), цей посібник виправить це.

Проблема

Симптом: При фільтрації товарів за допомогою WOOF/HUSKY, пагінація показує більше сторінок, ніж насправді існує.

Приклад:

  • Фільтр показує 15 продуктів (має бути 2 сторінки)
  • Відображення пагінації: 1, 2, 3, 4, 5… (5+ сторінок)
  • Натискання сторінки 3+ показує порожні результати або «Товарів не знайдено»

Що відбувається: Пагінація WooCommerce розраховує кількість сторінок на основі загального каталогу товарів, а не відфільтрованих результатів. WOOF фільтрує товари, але пагінація не оновлюється відповідно.

Рішення

Додайте цей код, щоб примусово пагінація використовувала правильний підрахунок сторінок з відфільтрованого запиту WOOF.

Крок 1: Додайте код

Додайте це до вашої дочірньої теми functions.php:

/**
 * Fix pagination page count when using WOOF filtering
 * Forces pagination to use correct max_num_pages from filtered query
 */
add_filter('woocommerce_pagination_args', function($args) {
    global $wp_query, $WOOF;
    
    // Check if WOOF filtering is active
    if ($WOOF->is_isset_in_request_data($WOOF->get_swoof_search_slug())) {
        // Force correct page count from HUSKY filtered query
        $args['total'] = $wp_query->max_num_pages;
    }
    
    return $args;
}, 999);

Пріоритет 999: Гарантує, що це буде виконано після інших модифікацій пагінації.

Крок 2: Очистити кеш

  1. Очистити кеш WordPress (якщо використовується плагін кешування)
  2. Очистити кеш браузера (Ctrl+F5)
  3. Тестування відфільтрованих результатів

Крок 3: Перевірка

  1. Застосувати будь-який фільтр WOOF (категорія, ціна, атрибути)
  2. Перевірте пагінацію внизу сторінки
  3. Номери сторінок тепер повинні відповідати фактичним відфільтрованим результатам

До виправлення:

Showing 12 products Pages: 1 2 3 4 5 6 7 8 (wrong!)

Після виправлення:

Showing 12 products Pages: 1 2 (correct!)

Як це працює

if ($WOOF->is_isset_in_request_data($WOOF->get_swoof_search_slug())) {

Що це робить: Перевіряє, чи активно фільтрування WOOF, шукаючи параметр пошуку WOOF в URL.

$args['total'] = $wp_query->max_num_pages;

Що це робить: Перевизначає загальну кількість сторінок WooCommerce фактичною кількістю сторінок із відфільтрованого запиту WordPress.

Чому пріоритет 999? Деякі теми або плагіни змінюють пагінацію. Пріоритет 999 гарантує, що цей код буде виконано останнім і матиме перевагу.

 

Виправлення проблем

Пагінація все ще неправильна

Проблема: Кількість сторінок все ще некоректна після додавання коду

Можливі причини:

  1. Код не в дочірній темі
    • Переконайтеся, що ви редагуєте functions.php дочірньої теми
    • Оновлення батьківської теми видалить код, якщо він не в дочірній темі
  2. Кеш не очищено
    • Очистіть плагін кешу WordPress
    • Очистити кеш сервера (панель хостингу)
    • Тест у режимі інкогніто
  3. Перевизначення пагінації теми
    • Деякі теми використовують власні функції пагінації
    • Спробуйте збільшити пріоритет до 9999
    • Перевірте документацію теми

Рішення: Збільшити пріоритет при конфліктах теми:

add_filter('woocommerce_pagination_args', function($args) {
    // ... code ...
}, 9999); // Higher priority

 

Коли потрібне це виправлення

Вам потрібне це виправлення, якщо:

  • ✅ Використання WOOF/HUSKY для фільтрації товарів
  • ✅ Пагінація показує більше сторінок, ніж існує
  • ✅ Клацання на високих номерах сторінок не показує продуктів
  • ✅ Кількість відфільтрованих результатів не відповідає пагінації