web-gelistirme-sc.com

Ön sayfada rasgele kategorileri görüntüleme (Tema İşlevlerini Bulma ve Düzenleme)

Şu anda bir Wordpress teması için bir alt tema düzenleme alfa aşamalarındayım. Programlama deneyimim var ve wordpress ile ilgili bazı deneyimlerim var ancak wordpress ile ilgili kodu düzenlemede doğrudan bir deneyim yok. Şu anda şu anda ilk üç kategoriyi alfabetik olarak gösteriyor.

Yapmaya çalıştığım şey: Alfabetik olarak ilk üç kategoriyi göstermek yerine, x'den fazla ürünle 3 rastgele kategori görüntülemek istiyorum.

Devam etmemi engelleyen aşağıdaki engellere/sorulara rastladım.

  1. Bu kategorilerin seçimini hangi mekanizma/fonksiyon kontrol eder? (TheirCode)
  2. Temaya dayalı mı, yoksa temel WordPress sisteminde mi?
  3. Bu değişikliği yapmak için başka hangi bilgiler geçerli olabilir?
  4. Firefox Dev Bar'dan hangi bilgiler faydalı olabilir?
  5. "OnlarınKodunu" nasıl bulabilirim, böylece "BenimKodum" ile değiştirebilirim?

Buradaki asıl soru şudur: firefox Dev Bar ve gerçek kaynak gibi araçları kullanarak bu seçimden sorumlu olan "TheirCode" u nasıl bulabilirim?

Bu soru WooCommerce (eklenti) ile ilgili değil. WooCommerce (şirket) tarafından tasarlanan bir temada veya gerçekten herhangi bir temada bir işlev bulmanın bir yolunu arıyorum.

Açık Kaynak Teması: WooCommerce Mağazası

8
T. Thomas

Buradaki asıl soru: Firefox dev bar ve asıl kaynak gibi araçları kullanarak bu seçimden sorumlu olan "TheirCode" u nasıl bulabilirim?

Eğer eğer HTML çıktısına/kaynağına atıfta bulunuyorsanız, örneğin resmi Storefront teması demo sitesinde , sadece "Ürün Kategorileri" başlığına veya bölümüne sağ tıklayın ve ardından kolayca Bu sectioninceleyin. "Eleman Seç" simgesi gibi diğer seçenekler için MDN doc bölümüne bakın.

enter image description here

Şimdi " asıl kaynak " (yani, "Ana Sayfa" şablonunu kullanarak Sayfalarda "Ürün Kategorileri" bölümünü oluşturan PHP kodu veya işlevi), inc/storefront-template-functions.php .

if ( ! function_exists( 'storefront_product_categories' ) ) {
    /**
     * Display Product Categories
     * Hooked into the `homepage` action in the homepage template
     *
     * @since  1.0.0
     * @param array $args the product section args.
     * @return void
     */
    function storefront_product_categories( $args ) {

        if ( storefront_is_woocommerce_activated() ) {

            $args = apply_filters( 'storefront_product_categories_args', array(
                'limit'             => 3,
                'columns'           => 3,
                'child_categories'  => 0,
                'orderby'           => 'name',
                'title'             => __( 'Shop by Category', 'storefront' ),
            ) );

            ...
        }
    }
}

Yani storefront_product_categories(), aradığınız ve yapabileceğiniz PHP işlevidir tamamen eğer isterseniz geçersiz kılar (bkz. Https://docs.woocommerce.com/document/set-up- ve-bir-çocuk-tema-kullan/# bölüm-5 ). Ancak ürün kategorilerini rastgele sıralamada görüntülemek istiyorsanız, o zaman sorgu değişkenlerini filtrelemek için storefront_product_categories_args işlevini kullanabilirsiniz (ki bu durumda sizin orderbyolacaktır):

add_filter( 'storefront_product_categories_args', function( $args ){
    $args['orderby'] = 'Rand';
    return $args;
} );

Bu filtreye storefront_product_categories() işlevinin içinden çağrılır ve bunlar kullanabileceğiniz diğer filtreler/eylemlerdir:

  • Filtre: storefront_product_categories_shortcode_args

  • İşlem: storefront_homepage_before_product_categories

  • İşlem: storefront_homepage_after_product_categories_title

  • İşlem: storefront_homepage_after_product_categories

Bir "eylem" ve "filtre" arasındaki farklardan emin değilseniz this 'a bakınız.


GÜNCELLEME: Nasıl kodu bulabilir misiniz?

Storefront tema belgelerine göz atın :

WooCommerce (şirket) tarafından tasarlanan bir temada veya gerçekten herhangi bir temada bir işlev bulmanın bir yolunu arıyorum.

  • İlk önce, temanın belgelerini kontrol edin (ve okuyun).

  • Hiçbiri veya ihtiyacınız olan bilgiyi bulamadıysanız veya bulamadıysanız, @motivast 'ın önerdiği şeyi deneyin - Sayfadaki öğeleri inceleyin, uygun HTML kodunu ve/veya CSS classname __/idname__' i bulun, ardından doğru dosyayı bulana kadar o HTML veya CSS classname __/idiçin tema dosyalarını arayın ya da PHP code/functionname__.

Örneğin, Storefront tema demo sitesinde, ürün kategorileri bölümünün HTML'si şudur:

<section class="storefront-product-section storefront-product-categories" aria-label="Product Categories">
    ...
</section>

Böylece tema dosyalarını kullanarak arama yapabilirsiniz. biri bu anahtar kelimeler: (Oluşturulan HTML ile en belirgin veya en yakın eşleşmeden başlarım)

  • <section class="storefront-product-section storefront-product-categories"

  • class="storefront-product-section storefront-product-categories"

  • storefront-product-categories

  • storefront-product-section

Vitrin/tema dokümantasyonunu bilmediğinizi farz edersek, yukarıdaki aramaların yapılması sizi en sonunda doğru dosyaya ya da PHP kod/function'e getirir.

Daha fazla yardıma ihtiyacınız olursa, bana bildirin, bu yanıtı buna göre güncelleyeceğim.

11
Sally CJ