WOOF Filtreleme ile Sayfalama Çok Fazla Sayfa Gösteriyorsa Nasıl Düzeltilir
WOOF (HUSKY) ürün filtrelerini kullanırken WooCommerce sayfalama doğru sayfa numaralarını göstermiyorsa, bu kılavuz bunu düzeltecektir.
Sorun
Belirti: WOOF/HUSKY ile ürünleri filtrelerken, sayfalama mevcut olandan daha fazla sayfa gösteriyor.
Örnek:
- Filtre 15 ürün gösteriyor (2 sayfa olmalıydı)
- Sayfalama görüntülenir: 1, 2, 3, 4, 5… (5+ sayfa)
- Sayfa 3+ tıklandığında boş sonuçlar veya “Ürün bulunamadı” gösterir
Ne oluyor: WooCommerce'in sayfa numaralandırması, filtrelenmiş sonuçlara değil, toplam ürün kataloğuna göre sayfa sayısını hesaplar. WOOF ürünleri filtreler, ancak sayfa numaralandırması buna göre güncellenmez.
Çözüm
Sayfalama işleminin WOOF'un filtrelenmiş sorgusundan doğru sayfa sayısını kullanmasını zorlamak için bu kodu ekleyin.
Adım 1: Kodu Ekle
Bunu ekleyin çocuk temanızın 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);
Öncelik 999: Diğer sayfalama değişikliklerinden sonra çalışmasını sağlar.
Adım 2: Önbelleği Temizle
- WordPress önbelleğini temizleyin (önbellek eklentisi kullanıyorsanız)
- Tarayıcı önbelleğini temizleyin (Ctrl+F5)
- Filtrelenmiş sonuçları test edin
Adım 3: Doğrulayın
- Herhangi bir WOOF filtresini uygula (kategori, fiyat, öznitelikler)
- Sayfanın altındaki sayfalama özelliğini kontrol edin
- Sayfa numaraları artık gerçek filtrelenmiş sonuçlarla eşleşmeli
Düzeltmeden Önce:
Showing 12 products Pages: 1 2 3 4 5 6 7 8 (wrong!)
Düzeltme sonrası:
Showing 12 products Pages: 1 2 (correct!)
Nasıl Çalışır
if ($WOOF->is_isset_in_request_data($WOOF->get_swoof_search_slug())) {
Bunun yaptığı: URL'deki WOOF'un arama parametresini arayarak WOOF filtrelemesinin şu anda aktif olup olmadığını kontrol eder.
$args['total'] = $wp_query->max_num_pages;
Bunun yaptığı: WooCommerce'in sayfalama toplamını, filtrelenmiş WordPress sorgusundan gerçek sayfa sayısı ile geçersiz kılar.
Neden öncelik 999? Bazı temalar veya eklentiler sayfalama işlemini değiştirir. Öncelik 999, bu kodun en son çalışmasını ve önceliğe sahip olmasını sağlar.
Sorun Giderme
Sayfalama Hâlâ Yanlış
Sorun: Kod eklendikten sonra sayfa sayısı hala yanlış
Olası nedenler:
- Çocuk temasında olmayan kod
- Çocuktaki temanın functions.php'sini düzenlediğinizden emin olun
- Tema güncellemeleri, alt temada değilse kodu silecektir.
- Önbellek temizlenmedi
- WordPress önbellek eklentisini temizle
- Sunucu önbelleğini temizleyin (hosting paneli)
- Gizli modda test edin
- Tema sayfalama geçersiz kılma
- Bazı temalar özel sayfalama işlevleri kullanır
- Önceliği 9999'a yükseltmeyi deneyin
- Tema belgelerini kontrol edin
Çözüm: Tema çakışmaları durumunda önceliği artırın:
add_filter('woocommerce_pagination_args', function($args) {
// ... code ...
}, 9999); // Higher priority
Bu Düzeltme Ne Zaman Gereklidir
Bu düzeltmeye ihtiyacınız varsa:
- ✅ Ürün filtrelemesi için WOOF/HUSKY kullanma
- ✅ Sayfalama mevcut olandan daha fazla sayfa gösteriyor
- ✅ Yüksek sayfa numaralarına tıklamak ürün göstermiyor
- ✅ Filtrelenmiş sonuç sayısı pagination ile eşleşmiyor