Comment corriger la pagination WooCommerce affichant trop de pages avec le filtrage
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 va 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)
- La pagination affiche : 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 se basant sur le catalogue complet des produits, et non sur les 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 nombre de pages correct issu de la requête filtrée de WOOF.
Étape 1 : Ajouter le code
Ajoutez ceci dans le functions.php de votre thème enfant :
/**
* 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 : Garantit que cela s'exécute après les autres modifications de pagination.
Étape 2 : Vider le cache
- Vider le cache WordPress (si vous utilisez un plugin de cache)
- Vider le cache du navigateur (Ctrl+F5)
- Tester les résultats filtrés
Étape 3 : Vérifier
- Appliquer n'importe quel filtre WOOF (catégorie, prix, attributs)
- Vérifier la pagination en bas de la page
- Les numéros de page doivent maintenant correspondre aux résultats filtrés réels
Avant 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 fonctionne
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 le total de pagination de WooCommerce par le nombre de pages réel issu 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 avoir ajouté le code
Causes possibles :
- Code pas dans le thème enfant
- Vérifiez que vous éditez le functions.php du thème enfant
- Les mises à jour du thème parent effaceront le code s'il n'est pas dans le thème enfant
- Cache non vidé
- Vider le cache du plugin de cache WordPress
- Vider le cache serveur (panneau d'hébergement)
- Tester en mode navigation privée
- Le thème remplace la pagination
- Certains thèmes utilisent des fonctions de pagination personnalisées
- Essayez d'augmenter la priorité à 9999
- Consultez la documentation du thème
Solution : Augmentez la priorité en cas de 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 :
- ✅ Utiliser WOOF/HUSKY pour le filtrage de produits
- ✅ La pagination affiche 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