Comment corriger la pagination qui affiche trop de pages avec le filtrage WOOF
Si la pagination de votre WooCommerce affiche des numéros de page incorrects lors de l'utilisation des filtres de produits WOOF (HUSKY), ce guide vous aidera à résoudre le problème.
Le problème
Symptôme : Lors du filtrage des produits avec WOOF/HUSKY, la pagination affiche plus de pages qu'il n'en existe réellement.
Exemple :
- Le filtre affiche 15 produits (devrait être 2 pages)
- Affichage de la pagination : 1, 2, 3, 4, 5… (5+ pages)
- Cliquer sur la page 3+ affiche des résultats vides ou « Aucun produit trouvé »
Ce qui se passe : La pagination de WooCommerce calcule le nombre de pages en fonction du catalogue de produits total, et non des résultats filtrés. WOOF filtre les produits, mais la pagination ne se met pas à jour en conséquence.
La Solution
Ajoutez ce code pour forcer la pagination à utiliser le bon nombre de pages de la requête filtrée de WOOF.
Étape 1 : Ajouter le code
Ajoutez ceci au thème enfant de votre 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);
Priorité 999 : Assure que cela s'exécute après d'autres modifications de pagination.
Étape 2 : Vider le cache
- Vider le cache WordPress (si vous utilisez un plugin de cache)
- Effacer le cache du navigateur (Ctrl+F5)
- Tester les résultats filtrés
Étape 3 : Vérifier
- Appliquez n'importe quel filtre WOOF (catégorie, prix, attributs)
- Vérifiez la pagination en bas de la page
- Les numéros de page doivent maintenant correspondre aux résultats filtrés réels
Avant la correction :
Showing 12 products Pages: 1 2 3 4 5 6 7 8 (wrong!)
Après correction :
Showing 12 products Pages: 1 2 (correct!)
Comment ça marche
if ($WOOF->is_isset_in_request_data($WOOF->get_swoof_search_slug())) {
Ce que cela fait : Vérifie si le filtrage WOOF est actuellement actif en recherchant le paramètre de recherche de WOOF dans l'URL.
$args['total'] = $wp_query->max_num_pages;
Ce que cela fait : Remplace la pagination totale de WooCommerce par le nombre réel de pages de la requête WordPress filtrée.
Pourquoi la priorité 999 ? Certains thèmes ou plugins modifient la pagination. La priorité 999 garantit que ce code s’exécute en dernier et prend le dessus.
Dépannage
La pagination est toujours incorrecte
Problème : Le nombre de pages est toujours incorrect après l'ajout du code
Causes possibles :
- Code non dans le thème enfant
- Vérifiez que vous modifiez le fichier functions.php de votre thème enfant
- Les mises à jour du thème parent effaceront le code si ce n'est pas dans un thème enfant
- Cache non vidé
- Effacer le plugin de cache WordPress
- Vider le cache du serveur (panneau d'hébergement)
- Tester en mode incognito
- Pagination d'override de thème
- Certains thèmes utilisent des fonctions de pagination personnalisées
- Essayez d'augmenter la priorité à 9999
- Vérifiez la documentation du thème
Solution : Augmentez la priorité si conflit avec le thème :
add_filter('woocommerce_pagination_args', function($args) {
// ... code ...
}, 9999); // Higher priority
Quand cette correction est nécessaire
Vous avez besoin de cette correction si :
- ✅ Utilisation de WOOF/HUSKY pour le filtrage des produits
- ✅ La pagination montre plus de pages qu'il n'en existe
- ✅ Cliquer sur des numéros de page élevés n'affiche aucun produit
- ✅ Le nombre de résultats filtrés ne correspond pas à la pagination