it-swarm-id.com

Menampilkan kategori acak di halaman depan (Mencari dan Mengedit Fungsi Tema)

Saya Saat ini sedang dalam tahap alfa mengedit tema anak untuk tema Wordpress. Saya memang memiliki pengalaman pemrograman dan beberapa pengalaman mengelola wordpress tetapi tidak memiliki pengalaman langsung mengedit kode terkait wordpress. Saat ini sedang menampilkan tiga kategori pertama berdasarkan abjad.

Apa yang saya coba lakukan: Alih-alih menampilkan tiga kategori pertama berdasarkan abjad, saya ingin menampilkan 3 kategori acak dengan lebih dari x jumlah produk.

Saya telah mengalami beberapa hambatan/pertanyaan berikut yang menghentikan saya melanjutkan.

  1. Mekanisme/fungsi apa yang mengontrol pemilihan kategori-kategori ini? (Kode mereka)
  2. Apakah berdasarkan tema atau sesuatu dalam sistem WordPress yang mendasarinya?
  3. Apa informasi lain yang relevan untuk melakukan perubahan ini?
  4. Informasi apa yang berguna dari Firefox Dev Bar?
  5. Bagaimana cara menemukan "Kode Mereka" sehingga saya dapat menggantinya dengan "KodeK My"?

Pertanyaan sebenarnya di sini adalah: Bagaimana cara menemukan "Kode Mereka" yang bertanggung jawab atas pemilihan ini menggunakan alat-alat seperti firefox Dev Bar dan sumber yang sebenarnya?

Pertanyaan ini bukan tentang WooCommerce (plugin). Saya mencari cara untuk menemukan fungsi dalam tema yang dirancang oleh WooCommerce (perusahaan) atau dalam tema apa pun.

Tema opensource: WooCommerce Storefront

8
T. Thomas

Pertanyaan sebenarnya di sini adalah: Bagaimana saya menemukan "Kode Mereka" yang bertanggung jawab atas pemilihan ini menggunakan alat-alat seperti firefox dev bar dan sumber yang sebenarnya?

Jika Anda merujuk ke HTML output/sumber, maka misalnya pada tema Storefront resmi situs demo , cukup klik kanan pada judul atau bagian "Kategori Produk" dan kemudian Anda dapat dengan mudah periksa sectionitu. Lihat dokumen MDN untuk opsi lain seperti ikon "Pilih Elemen".

enter image description here

Sekarang untuk " sumber aktual " (yaitu kode PHP atau fungsi yang menghasilkan bagian "Kategori Produk" pada Halaman menggunakan templat "Beranda"), Anda dapat menemukannya di 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' ),
            ) );

            ...
        }
    }
}

Jadi storefront_product_categories() adalah fungsi PHP yang Anda cari dan dapat Anda sepenuhnyatimpa jika Anda ingin (lihat https://docs.woocommerce.com/document/set- up-and-use-a-child-theme/# section-5 ). Tetapi jika Anda hanya ingin menampilkan kategori produk dalam pengurutan acak, maka Anda cukup menggunakan storefront_product_categories_args untuk memfilter argumen kueri (yang di case adalah orderbyname__):

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

Filter itu dipanggil dari dalam fungsi storefront_product_categories(), dan ini adalah filter/tindakan lain yang dapat Anda gunakan:

  • Saring: storefront_product_categories_shortcode_args

  • Tindakan: storefront_homepage_before_product_categories

  • Tindakan: storefront_homepage_after_product_categories_title

  • Tindakan: storefront_homepage_after_product_categories

Lihat ini jika Anda tidak yakin tentang perbedaan antara "aksi" dan "filter".


UPDATE: BagaimanaAnda dapat menemukan kode?

Jelajahi dokumentasi tema Storefront :

Saya mencari cara untuk menemukan fungsi dalam tema yang dirancang oleh WooCommerce (perusahaan) atau dalam tema apa pun.

  • Pertama, periksa (dan baca) dokumentasi tema.

  • Jika tidak ada atau Anda tidak/tidak dapat menemukan informasi yang Anda butuhkan, maka coba apa yang disarankan oleh @motivast - Periksa elemen-elemen pada halaman, cari kode HTML yang sesuai dan/atau CSS classname __/idname__, lalu cari file tema untuk HTML atau CSS itu classname __/idsampai Anda menemukan file yang tepat atau PHP kode/functionname__.

Misalnya, di situs demo tema Storefront, HTML bagian kategori produk adalah:

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

Jadi Anda bisa mencari file tema menggunakan satu dari kata kunci ini: (Saya akan mulai dari kecocokan paling spesifik atau paling dekat dengan HTML yang dihasilkan)

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

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

  • storefront-product-categories

  • storefront-product-section

Dengan asumsi Anda tidak tahu tentang dokumentasi Storefront/theme, melakukan pencarian di atas pada akhirnya akan membawa Anda ke file yang tepat atau PHP code/functionname__.

Jika Anda membutuhkan bantuan lebih lanjut, beri tahu saya dan saya akan memperbarui jawaban ini sesuai.

11
Sally CJ