एक कस्टम वर्गीकरण की सभी शर्तें दिखाएं?


18

मैंने कुछ कस्टम टैक्सोनॉमी बनाईं और मुझे इसमें से सभी शर्तों को दिखाने की आवश्यकता है, जो मैंने अब तक हासिल किया है वह उन टैक्सोनॉमी को दिखा रहा है जो एक कस्टम पोस्ट प्रकार में चुने गए / चुने गए हैं, लेकिन मुझे उन सभी को दिखाने की आवश्यकता है, जो चुने गए हैं या नहीं । ताकि बाद में मैं एक फ़िल्टर बना सकूं जो फ़िल्टर करता है जिसके अनुसार एक कस्टम पोस्ट प्रकार मान होता है।

<?php 
$args=array(
  'public'   => true,
  '_builtin' => false
);
$output = 'names'; // or objects
$operator = 'and';
$taxonomies=get_taxonomies($args,$output,$operator); 
if  ($taxonomies) {
  foreach ($taxonomies  as $taxonomy ) {
    $terms = get_terms($taxonomy);
        foreach ( $terms as $term) {
?>
        <li><br><a href="#"><input type="checkbox" name="profile[]" value=""><?php echo $term->name; ?> <br/></a></li>
       <?php 
                }
              }
            }  
            ?>

मेरे पास अब तक क्या है।

अग्रिम में धन्यवाद!


यह किस बिंदु पर विफल होता है? यह आपके इच्छित तरीके से कितना काम करता है?
s_ha_dum

यह कार्य करता है कि मैं केवल कस्टम पोस्ट प्रकार में चयनित शर्तों को दिखा सकता हूं। मैं चाहता हूं कि वे सभी चुने हुए लोगों को दिखा सकें या नहीं, मैं ऐसा डमी पोस्ट टाइप नहीं चाहता, जिसमें सब कुछ सिर्फ उन्हें दिखाने के लिए चुना गया हो।
डेविड एच

जवाबों:


39

आपको एक अतिरिक्त तर्क पारित करना होगा get_terms()। डिफ़ॉल्ट "खाली" शब्द - शर्तों को छुपाने के लिए है, जिन्हें कोई भी पद नहीं सौंपा गया है।

$terms = get_terms([
    'taxonomy' => $taxonomy,
    'hide_empty' => false,
]);

आपको बहुत - बहुत धन्यवाद! लेकिन मैं कुछ पूछना चाहता हूं, तो आप यह घोषित करने के बजाय एक चर के अंदर एक सरणी क्यों बनाएंगे, जहां पहले सरणी दिखाई गई है?
डेविड एच।

सादगी। यदि तर्क सरणी अधिक जटिल थी, तो मैंने इसे पहले (सबसे अधिक संभावना) घोषित किया होगा, लेकिन एक भी तर्क के लिए यह करने का सबसे सरल तरीका है। यह समान रूप से अच्छी तरह से काम करना चाहिए।
s_ha_dum

बहुत बहुत धन्यवाद :) जिसने मुझे बहुत सोचा। मैं वास्तव में इसकी प्रशंसा करता हूँ!
डेविड एच।

काम करता है !! अब मैं देख सकता हूँ कि सभी वर्गीकरण विकल्पों के साथ क्या हो रहा है! कुछ प्लगइन्स वहाँ में जटिल संरचना बनाते हैं।
पलक_काट्ज

6

4.5.0 के बाद से, टैक्सोनॉमी को $ args के सरणी में 'taxonomy' तर्क के माध्यम से पारित किया जाना चाहिए:

$terms = get_terms( array(
    'taxonomy' => 'post_tag',
    'hide_empty' => false,
) );

जहां कोई भी पद नहीं है डिफ़ॉल्ट रूप से छिपाए जाते हैं।


3

यह कोड सभी श्रेणी और उप-श्रेणी के कस्टम टैक्सोनोमी का उपयोग कर रहा है get_terms():

<?php $wcatTerms = get_terms('product_cat', array('hide_empty' => 0, 'parent' =>0)); 
   foreach($wcatTerms as $wcatTerm) : 
   ?>
<ul>
   <li>
      <a href="<?php echo get_term_link( $wcatTerm->slug, $wcatTerm->taxonomy ); ?>"><?php echo $wcatTerm->name; ?></a>
      <ul class="megaSubCat">
         <?php
            $wsubargs = array(
               'hierarchical' => 1,
               'show_option_none' => '',
               'hide_empty' => 0,
               'parent' => $wcatTerm->term_id,
               'taxonomy' => 'product_cat'
            );
            $wsubcats = get_categories($wsubargs);
            foreach ($wsubcats as $wsc):
            ?>
         <li><a href="<?php echo get_term_link( $wsc->slug, $wsc->taxonomy );?>"><?php echo $wsc->name;?></a></li>
         <?php
            endforeach;
            ?>  
      </ul>
   </li>
</ul>
<?php 
   endforeach; 
   ?>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.