HUSKY - Product Filter for WooCommerce

HUSKY — Büyük WooCommerce Kataloglarında Ürün Filtreleme Nasıl Hızlandırılır

HUSKY — Büyük WooCommerce Kataloglarında Ürün Filtreleme Nasıl Hızlandırılır

Bir WooCommerce mağazası birkaç bin ürünün ötesine geçtiğinde, ürün filtresi bir darboğaz haline gelebilir. Her taksonomi terimi bir sayım sorgusu gerektirir, her nitelik bir birleştirme ekler ve dinamik yeniden sayım veritabanı işini katlar. HUSKY (eski adıyla WOOF), büyük kataloglar için özel olarak tasarlanmış birkaç yerleşik önbellekleme mekanizması ve kancası içerir.

Dinamik Yeniden Sayım Önbelleğini Etkinleştirin

HUSKY → Gelişmiş → Seçenekler bölümünde Filtredeki her öğe için dinamik yeniden sayım numarasını önbelleğe al ayarını bulacaksınız. Etkinleştirildiğinde HUSKY, her terim için yeniden sayım sonuçlarını WordPress seçenekler tablosunda veya geçici olarak depolar, böylece sonraki sayfa yüklemeleri sayım sorgularını tamamen atlar. Bu, birçok taksonomi terimiyle Dinamik Yeniden Sayım kullanan mağazalar için en etkili tek anahtardır.

Önbellek, ürün değişikliklerinde değil, bir zamanlamaya göre temizlenir. Aralık, önbellek ayarının yanındaki otomatik temizleme seçeneğiyle belirlenir (varsayılan süre bir haftadır). Bir grup ürün ekledikten veya içe aktardıktan sonra, yönetici panelindeki önbelleği temizle düğmesiyle manuel olarak temizleyebilirsiniz.

Terim Önbelleğini Etkinleştirin

Yeniden sayım önbelleğinin yanında Terimleri önbelleğe al ayarı bulunur. Filtre formu çok sayıda terim (yüzlerce ürün kategorisi, nitelik veya etiket) içerdiğinde, bu seçenek oluşturulan terim listesini önbelleğe alır, böylece HTML her sayfa yüklenmesinde yeniden oluşturulmak zorunda kalmaz.

Yeniden sayım önbelleğiyle aynı şekilde çalışır: bir zamanlamaya göre temizlenir, kendi otomatik temizleme aralığı ve yöneticide bir terim önbelleğini temizle düğmesi vardır. Derin iç içe geçmiş kategori ağaçlarına veya çok sayıda nitelik değerine sahip mağazalar için, her iki önbelleği birlikte etkinleştirmek istek başına veritabanı yükünü önemli ölçüde azaltır.

Önceden Oluşturulmuş Ürün Verileri için Turbo Modu Kullanın

Turbo Modu, HUSKY'nin büyük kataloglar için sunduğu en güçlü optimizasyondur. Etkinleştirildiğinde, ürün parametreleriyle bir JSON veri dosyasını önceden oluşturur. Her filtre isteğinde karmaşık WP_Query + tax_query + meta_query oluşturup yürütmek yerine, eklenti önceden hesaplanmış verileri okur — büyük kataloglarda yanıt süresindeki fark önemlidir.

Turbo Modu, HUSKY → Eklentiler → Turbo Modu altında yapılandırılır. Dosya yeniden oluşturma, WordPress cron ile veya güvenilirlik için gerçek bir sunucu crontab ile zamanlanabilir (Turbo Modu cron kurulumuyla ilgili SSS bölümüne bakın).

Turbo Modu Ürün Sınırını Ayarlayın

Varsayılan olarak Turbo Modu, önbellek oluşturma sırasında en fazla 15.000 ürün işler. Daha fazla ürüne sahip mağazalarda, oluşturma tüm ürünler indekslenmeden durur. Bu sınırı yükseltmek için woof_turbo_mode_products_limit kancasını kullanın:

add_filter('woof_turbo_mode_products_limit', function($limit) {
    // Increase limit for catalogs larger than 15,000 products
    return 50000;
});

Kanca, ext/turbo_mode/index.php içinde bulunur. Değeri tüm kataloğunuzu kapsayacak kadar yüksek ayarlayın, ancak dosya oluşturma sırasında PHP yürütme süresi ve bellek sınırlarına dikkat edin.

Büyük Siteler için Sayma Yöntemini Optimize Edin

Dinamik yeniden sayım sistemi, çok sayıda ürüne sahip mağazalarda önemli miktarda bellek tüketebilen WP_Query tabanlı bir sayaç kullanır. woof_counter_method kancası (kaynak: classes/counter.php), nopaging=false ve posts_per_page=1 ayarlayan daha hafif bir sayma yöntemine geçmenizi sağlayarak sorgu başına belleği azaltır:

add_filter('woof_counter_method', function($saving_memory) {
    // Enable memory-saving counter mode
    return true;
});

Bunu önce hazırlık sitenizde test edin — bazı yapılandırmalarda iyi çalışır, ancak tümünde değil.

Ürün Çıktısını woof_products_query ile Özelleştirin

woof_products_query filtre kancası (kaynak: index.php), [woof_products] kısa kodunun $query_args dizisini WP_Query çalıştırılmadan önce iletir. Özel meta sorguları eklemek, belirli ürünleri çıktıdan hariç tutmak veya sorgu yapısını ayarlamak için kullanın:

add_filter('woof_products_query', function($query_args) {
    // Exclude products that should never appear in filter results
    $query_args['meta_query'][] = array(
        'key'     => '_exclude_from_filter',
        'compare' => 'NOT EXISTS'
    );
    return $query_args;
});

Taksonomi düzeyindeki manipülasyonlar için (taksonomiler arasındaki ilişki operatörlerini değiştirme), ilgili woof_main_query_tax_relations kancasını kullanın.

Filtre Verileri için WordPress Nesne Önbelleğini Etkinleştirin

HUSKY, dahili verilerini WordPress nesne önbelleği üzerinden yönlendirmek için woof_use_wp_cache kancasını destekler. Halihazırda kalıcı bir nesne önbelleği arka ucu (Redis, Memcached) kullanıyorsanız, bu kancayı etkinleştirmek filtre verilerini veritabanından hızlı bellek içi depolamaya taşır:

add_filter('woof_use_wp_cache', function($is){
    return true;
});

Önemli: Bu kancanın, kalıcı bir nesne önbellekleme eklentisi yüklü olmadan hiçbir etkisi yoktur. Yerleşik önbellek ayarlarının yerini almaz — barındırma ortamınız nesne önbelleğini desteklediğinde onları tamamlar.

En İyi Sonuçlar için Ayarları Birleştirin

Büyük bir katalog için önerilen temel yapılandırma (10.000+ ürün, çok sayıda taksonomi terimi):

  • Gelişmiş → Seçenekler bölümünde Dinamik yeniden sayımı önbelleğe al ve Terimleri önbelleğe al seçeneklerini etkinleştirin
  • Turbo Modunu etkinleştirin ve ürün sınırını katalog boyutunuza uyacak şekilde ayarlayın
  • Kalıcı bir nesne önbelleği mevcutsa woof_use_wp_cache uygulayın
  • Bellek tasarrufu modunun kurulumunuz için çalışıp çalışmadığını görmek için woof_counter_method'ı hazırlık sitesinde test edin
  • woof_products_query'ı yalnızca [woof_products] çıktı sorgusunu ayarlamanız gerektiğinde kullanın

İki yerleşik önbellek anahtarıyla başlayın — herhangi bir kod değişikliği gerektirmezler ve tek başlarına en belirgin iyileştirmeyi sağlarlar.