WooCommerce के साथ श्रेणी के द्वारा सभी उत्पादों को प्रदर्शित करें


13

WooCommerce के साथ, मैं एक स्टोर में सभी श्रेणियों को शीर्षकों के रूप में प्रदर्शित करना चाहता हूं, उनके सभी उत्पाद बिना किसी अनियंत्रित सूची के नीचे सूचीबद्ध हैं। क्या ऐसा करना संभव है? मैंने कुछ चीजें देखी हैं जो मुझे श्रेणियों की एक सूची या एक विशिष्ट श्रेणी के लिए उत्पादों की एक सूची प्रदर्शित करने देंगी, लेकिन कुछ भी नहीं जो मैं वर्णित सभी चीजों के माध्यम से लूप करूंगा।

यहाँ मैं वर्तमान में सभी श्रेणियों को सूचीबद्ध करने के लिए उपयोग कर रहा हूँ:

<?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>';
    }
}
?> 

आपको बस लूप्स का एक लूप चाहिए। अपने अंदर foreach(), WP_Query()उस अवधि में सभी उत्पादों को हथियाने के लिए एक नया चलाएं .. और फिर उन के माध्यम से लूप।
हेलगेटहाइकिंग

मुझे लगता है कि मैं समझता हूं कि यह कैसे करना है, लेकिन मुझे PHP के साथ श्रेणी के उत्पादों को सूचीबद्ध करने के बारे में कुछ भी नहीं मिल सकता है (सभी मैं पा सकता हूं शोर्ट नोडेंस है)। यदि आप मुझे दिखा सकते हैं कि वह कोड कैसा दिखता है, तो मुझे बाकी का पता लगाने में सक्षम होना चाहिए।
जैकब डेव

2
आपको शोर्ट की आवश्यकता नहीं है, श्रेणी के आधार पर उत्पादों की सूची बनाना केवल एक टैक्स क्वेरी है
हेलगैथवाइकिंग

मुझे पता था कि मुझे एक शोर्ट की जरूरत नहीं है, मैं कह रहा था कि मुझे वह सब मिल सकता है, जो अनहेल्दी था। आपके द्वारा प्रदान किया गया लिंक आशाजनक लग रहा है, मैं इसे कल एक शॉट दूंगा और वापस रिपोर्ट करूंगा, धन्यवाद।
जैकब डीव

1
ठीक। यदि आप अभी भी अटके हुए हैं, तो अपने नए कोडिंग प्रयास के साथ अपने प्रश्न को संपादित करें और मैं एक नज़र डालूंगा।
हेलगेटहाइकिंग

जवाबों:


25

पता लगा लिया! नीचे दिया गया कोड सभी श्रेणियों और प्रत्येक श्रेणियों के पोस्ट को स्वचालित रूप से सूचीबद्ध करता है!

$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>";
    }
}

अच्छा लगा। यदि आप वास्तव में पागल हो जाना चाहते हैं, तो आप चाहते हैं कि आप ट्रांज़िशन एपीआई पर गौर कर सकें ... जो आपको हर पेज लोड पर बहुत सारे प्रश्नों को चलाने से रोकने में मदद करेगा।
हेलगेटहाइकिंग

मैं प्रत्येक श्रेणी के लिए छवि थंबनेल कैसे प्राप्त कर सकता हूं?
एलिसा

@AlyssaReyes श्रेणियों में स्वाभाविक रूप से थंबनेल नहीं हैं; क्या आपने इसके लिए अपनी श्रेणियों के लिए कोई कस्टम फ़ील्ड सेट किया है? क्या आप इसे अधिक विस्तार के साथ एक नए प्रश्न में पोस्ट कर सकते हैं और मुझे लिंक भेज सकते हैं ताकि मैं बेहतर समझ पाऊं?
याकूबTheDev

1
धन्यवाद मनुष्य, आपने मुझे कुछ समय बचाया और मुझे सही दिशा में स्थापित किया। इस उत्तर को सुधारने का एकमात्र तरीका यह है कि WooCommerce की अंतर्निहित क्वेरी वर्ग का उपयोग करें: WC_Product_Queryके बजाय WP_Query, फिर foreachलूप के बजाय लूप का उपयोग करें while। कारणों के लिए, क्वेरी के लिए Github दस्तावेज़ीकरण पर एक नज़र डालें: github.com/woocommerce/woocommerce/wiki/… , लेकिन जिस्ट है:> "कस्टम WP_Queries क्वेरीज़ डेटा के रूप में WooCommerce के भविष्य के संस्करणों में आपके कोड को तोड़ने की संभावना है। बेहतर प्रदर्शन के लिए कस्टम टेबल की ओर बढ़ते हैं। "
13-0 को अनकैप्डटाइपर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.