Kategoriye Göre Tüm Ürünleri WooCommerce ile Görüntüle


13

WooCommerce ile, bir mağazadaki tüm kategorileri başlık olarak görüntülemek istiyorum, tüm ürünleri aşağıda sıralanmamış bir listede listeleniyor. Bunu yapmak mümkün mü? Belirli bir kategori için bir kategori listesi veya bir ürün listesi göstermeme izin verecek birkaç şey gördüm, ancak her şeyi açıkladığım şekilde döngüye sokacak bir şey yok.

Şu anda tüm kategorileri listelemek için kullanıyorum:

<?php
$args = array(
    'number'     => $number,
    'orderby'    => $orderby,
    'order'      => $order,
    'hide_empty' => $hide_empty,
    'include'    => $ids
);
$product_categories = get_terms( 'product_cat', $args );
$count = count($product_categories);
if ( $count > 0 ){
    foreach ( $product_categories as $product_category ) {
        echo '<h4><a href="' . get_term_link( $product_category ) . '">' . $product_category->name . '</h4>';
    }
}
?> 

Sadece bir döngü döngüsüne ihtiyacınız var. İçinde foreach(), WP_Query()bu terimdeki tüm ürünleri kapmak için yeni bir koşu yap .. ve sonra bunlardan geç.
Mart'ta helgatheviking

Bunu nasıl yapacağımı anlıyorum, ama PHP ile kategoriye göre ürün listeleme hakkında bir şey bulamıyorum (tüm bulabildiğim kısa kod saçmalıktır). Bana bu kodun neye benzediğini gösterebilirseniz, gerisini anlayabilmeliyim.
JacobTheDev

2
Bir kısa koda ihtiyacınız yoktur, ürünleri kategoriye göre listelemek sadece bir Vergi Sorgusudur .
29'da helgatheviking

Bir kısa koda ihtiyacım olmadığını biliyordum, bulabildiğim tek şey olduğunu söylüyordum, bu da yararsızdı. Verdiğiniz bağlantı umut verici görünüyor, yarın bir şans vereceğim ve geri rapor edeceğim, teşekkürler.
JacobTheDev

1
Tamam. Hala takılı kalırsanız, sorunuzu yeni kodlama denemenizle düzenleyin, ben de bir göz atacağım.
Mart'ta helgatheviking

Yanıtlar:


25

Anladım! Aşağıdaki kod otomatik olarak tüm kategorileri ve her kategorideki yazıları listeler!

$args = array(
    'number'     => $number,
    'orderby'    => 'title',
    'order'      => 'ASC',
    'hide_empty' => $hide_empty,
    'include'    => $ids
);
$product_categories = get_terms( 'product_cat', $args );
$count = count($product_categories);
if ( $count > 0 ){
    foreach ( $product_categories as $product_category ) {
        echo '<h4><a href="' . get_term_link( $product_category ) . '">' . $product_category->name . '</a></h4>';
        $args = array(
            'posts_per_page' => -1,
            'tax_query' => array(
                'relation' => 'AND',
                array(
                    'taxonomy' => 'product_cat',
                    'field' => 'slug',
                    // 'terms' => 'white-wines'
                    'terms' => $product_category->slug
                )
            ),
            'post_type' => 'product',
            'orderby' => 'title,'
        );
        $products = new WP_Query( $args );
        echo "<ul>";
        while ( $products->have_posts() ) {
            $products->the_post();
            ?>
                <li>
                    <a href="<?php the_permalink(); ?>">
                        <?php the_title(); ?>
                    </a>
                </li>
            <?php
        }
        echo "</ul>";
    }
}

Güzel. Gerçekten çılgın olmak istiyorsanız , her sayfa yüklemesinde bu kadar çok sorgu çalıştırmanıza yardımcı olacak Geçici Geçişler API'sına bakmak isteyebilirsiniz .
Mart'ta helgatheviking

Her kategori için resim küçük resimlerini nasıl alabilirim?
Alyssa Reyes

@AlyssaReyes kategorilerinde doğal olarak küçük resimler yoktur; bunun için kategorileriniz için özel bir alan oluşturdunuz mu? Bunu daha ayrıntılı olarak yeni bir soruya gönderebilir ve daha iyi anlayabilmem için bana bağlantıyı gönderebilir misiniz?
JacobTheDev

1
Teşekkürler adamım, biraz zaman kazandın ve doğru yöne ayarladın. : Bu cevabı getirebileceği tek yolu WooCommerce en yerleşik sorgu sınıfını kullanmaktır WC_Product_Queryyerine, WP_Querydaha sonra, bir kullanmak foreachbir yerine döngü whiledöngü. Nedenlerden dolayı, şu sorunun Github belgelerine bakın: github.com/woocommerce/woocommerce/wiki/… , ancak özü şudur:> "özel WP_Queries sorgularının, gelecekte WooCommerce'ın veri olarak sürümlerinde kodunuzu kırması muhtemeldir daha iyi performans için özel tablolara yönelir. "
UncaughtTypeError
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.