WooCommerce Sayfalamasının Filtreleme ile Çok Fazla Sayfa Göstermesini Düzeltme
WooCommerce sayfalamanız WOOF (HUSKY) ürün filtrelerini kullanırken yanlış sayfa numaraları gösteriyorsa, bu kılavuz sorunu çözecektir.
Sorun
Belirti: WOOF/HUSKY ile ürünleri filtrelerken, sayfalama gerçekte var olandan daha fazla sayfa gösterir.
Örnek:
- Filtre 15 ürün gösteriyor (2 sayfa olmalı)
- Sayfalama şunu gösteriyor: 1, 2, 3, 4, 5… (5+ sayfa)
- 3. sayfaya veya sonrasına tıklamak boş sonuçlar veya “Ürün bulunamadı” gösteriyor
Neler oluyor: WooCommerce sayfalama, sayfa sayısını filtrelenmiş sonuçlara değil, toplam ürün kataloğuna göre hesaplıyor. WOOF ürünleri filtreliyor ancak sayfalama buna göre güncellenmiyor.
Çözüm
WOOF’un filtrelenmiş sorgusundan doğru sayfa sayısını kullanmaya zorlamak için bu kodu ekleyin.
Adım 1: Kod Ekleyin
Bunu alt temanızın functions.php dosyasına ekleyin:
/**
* 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: Bu kodun diğer sayfalama değişikliklerinden sonra çalışmasını sağlar.
Adım 2: Önbelleği Temizleyin
- 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 filtresi uygulayın (kategori, fiyat, nitelikler)
- Sayfanın altındaki sayfalamayı kontrol edin
- Sayfa numaraları artık gerçek filtrelenmiş sonuçlarla eşleşmelidir
Düzeltmeden önce:
Showing 12 products Pages: 1 2 3 4 5 6 7 8 (wrong!)
Düzeltmeden sonra:
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’de WOOF’un arama parametresini kontrol ederek WOOF filtrelemesinin etkin olup olmadığını denetler.
$args['total'] = $wp_query->max_num_pages;
Bunun yaptığı: WooCommerce sayfalama toplamını, filtrelenmiş WordPress sorgusundan gelen gerçek sayfa sayısıyla değiştirir.
Neden öncelik 999? Bazı temalar veya eklentiler sayfalamayı değiştirir. Öncelik 999, bu kodun en son çalışmasını ve öncelikli olmasını sağlar.
Sorun Giderme
Sayfalama Hala Yanlış
Sorun: Kod ekledikten sonra sayfa sayısı hala yanlış
Olası nedenler:
- Kod alt temada değil
- Alt temanın functions.php dosyasını düzenlediğinizi doğrulayın
- Alt temada değilse, ana tema güncellemeleri kodu silecektir
- Önbellek temizlenmedi
- WordPress önbellek eklentisini temizleyin
- Sunucu önbelleğini temizleyin (barındırma paneli)
- Gizli modda test edin
- Tema sayfalamayı geçersiz kılıyor
- Bazı temalar özel sayfalama işlevleri kullanır
- Önceliği 9999'a çıkarmayı deneyin
- Tema belgelerini kontrol edin
Çözüm: Tema çakışması varsa önceliği artırın:
add_filter('woocommerce_pagination_args', function($args) {
// ... code ...
}, 9999); // Higher priority
Bu Düzeltme Ne Zaman Gerekli
Bu düzeltmeye ihtiyacınız var eğer:
- ✅ Ürün filtreleme için WOOF/HUSKY kullanıyorsanız
- ✅ Sayfalama var olandan daha fazla sayfa gösteriyorsa
- ✅ Yüksek sayfa numaralarına tıklamak ürün göstermiyorsa
- ✅ Filtrelenmiş sonuç sayısı sayfalama ile eşleşmiyorsa