HUSKY - Product Filter for WooCommerce

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

  1. WordPress önbelleğini temizleyin (önbellek eklentisi kullanıyorsanız)
  2. Tarayıcı önbelleğini temizleyin (Ctrl+F5)
  3. Filtrelenmiş sonuçları test edin

Adım 3: Doğrulayın

  1. Herhangi bir WOOF filtresi uygulayın (kategori, fiyat, nitelikler)
  2. Sayfanın altındaki sayfalamayı kontrol edin
  3. 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:

  1. 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
  2. Önbellek temizlenmedi
    • WordPress önbellek eklentisini temizleyin
    • Sunucu önbelleğini temizleyin (barındırma paneli)
    • Gizli modda test edin
  3. 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