माता-पिता की श्रेणी के बच्चे प्राप्त करें


17

मैं इस पाश में प्रदर्शित करने के लिए सभी बच्चों की श्रेणियां प्राप्त करने की कोशिश कर रहा हूं, लेकिन मैं कोड के साथ संघर्ष कर रहा हूं। अभी तक मेरे पास इतना ही है।

<?php $args=array('orderby' => 'name', 'order' => 'ASC');
    $categories=get_categories($args); 
    foreach ($categories as $cat) { ?>
    <dt><a href="#" class="customer-acquisitiontop" id="<?php echo $cat->slug; ?>" data-filter=".<?php echo $cat->slug; ?>"><h2><?= $cat->cat_name; ?></h2></a></dt>
    <dd><div class="services">
    <?= $categories=get_categories('parent'); ?> /*This should be the children of the parent category */
    </div>
    </dd>
<?php } ?>

कोई भी मदद बहुत अच्छी रहेगी

जवाबों:


19

आप बस स्ट्रिंग "पैरेंट" पास नहीं कर सकते get_categories। आपको पैरेंट की आईडी पास करनी होगी।

$categories=get_categories(
    array( 'parent' => $cat->cat_ID )
);

ध्यान दें कि दो समान हैं, लेकिन समान नहीं हैं "संतान प्राप्त करें" पैरामीटर जो आप उपयोग कर सकते हैं।

child_of (पूर्णांक) उन सभी श्रेणियों को प्रदर्शित करता है, जो इसके ID द्वारा पहचाने गए श्रेणी के वंशज (यानी बच्चे और पोते) हैं। इस पैरामीटर के लिए कोई डिफ़ॉल्ट नहीं है। यदि पैरामीटर का उपयोग किया जाता है, तो Hide_empty पैरामीटर गलत पर सेट होता है।

माता-पिता (पूर्णांक) केवल वही श्रेणियां प्रदर्शित करते हैं जो उसकी आईडी द्वारा पहचाने गए श्रेणी के प्रत्यक्ष वंशज (अर्थात केवल बच्चे) हैं। यह 'child_of' पैरामीटर की तरह काम नहीं करता है। इस पैरामीटर के लिए कोई डिफ़ॉल्ट नहीं है। [2.8.4 में]

अब आपको लूप ओवर करने की आवश्यकता है $categories। आप सिर्फ एक सरणी नहीं गूँज सकते हैं।

foreach ($categories as $c) {
    var_dump($c);
    // what you really want instead of var_dump is something to
    // to create markup-- list items maybe, For example...
    echo '<li>'.$c->cat_name.'</li>';
}

दुर्भाग्य से, यह सिर्फ मुझे ऐरे का आउटपुट दे रहा है। कोई मान नहीं खींचा जा रहा है।
क्रिस दा सिए

'एरे' तब होता है जब आप किसी एरो को इको करने की कोशिश करते हैं। आपको सरणी पर लूप करने और व्यक्तिगत तत्वों को प्रतिध्वनित करने की आवश्यकता है।
s_ha_dum

2
आप 'Hide_empty' => गलत जोड़ना चाहते हैं। खाली श्रेणियों को भी दिखाने के लिए।
फ्लोरिस

2

नीचे दिए गए कोड का उपयोग अपने आर्काइव.फैप फ़ाइल में करें। यह कोड आपकी सहायता करेगा:

<?php

    $term = get_queried_object();

    $children = get_terms( $term->taxonomy, array(
        'parent'    => $term->term_id,
        'hide_empty' => false
    ) );

    if ( $children ) { 
        foreach( $children as $subcat )
        {
            echo '<li><a href="' . esc_url(get_term_link($subcat, $subcat->taxonomy)) . '">' . $subcat->name . '</a></li>';
        }
    }
?>

कृपया संपादित आपका जवाब है, और एक विवरण जोड़ें: क्यों कि समस्या का समाधान कर सकता है?
FUXIA

0

यदि सरणी में कोई मान नहीं हैं, तो आप निम्नलिखित दृष्टिकोण आज़मा सकते हैं:

$last_categories = get_categories(
  array(
    'taxonomy' => 'product_cat',
    'parent' => $sub_category->cat_ID
  )
);
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.