मैं वास्तव में कुछ शर्तें डालने के साथ कर रहा हूँ। यहाँ मेरा परिदृश्य है: मेरे पास एक वर्गीकरण है जिसे veda_release_type कहा जाता है:
//Release Type and Region
$labels = array(
'name'=> _x('Release Types/Regions', 'taxonomy general name' ),
'singular_name' => _x('Release Type/Region', 'taxonomy singular name'),
'search_items' => __('Search Release Types/Regions'),
'popular_items' => __('Popular Release Types/Regions'),
'all_items' => __('All Release Types/Regions'),
'edit_item' => __('Edit Release Type/Regions'),
'edit_item' => __('Edit Release Type/Region'),
'update_item' => __('Update Release Type/Region'),
'add_new_item' => __('Add New Release Type/Region'),
'new_item_name' => __('New Release Type/Region Name'),
'separate_items_with_commas' => __('Seperate Release Types/Regions with Commas'),
'add_or_remove_items' => __('Add or Remove Release Types/Regions'),
'choose_from_most_used' => __('Choose from Most Used Release Types/Regions')
);
$args = array(
'hierarchical' =>true,
'labels' => $labels,
'query_var' => true,
'rewrite' => array('slug' =>'release_type')
);
register_taxonomy('veda_release_type', 'veda_release',$args);
यह स्पष्ट रूप से श्रेणीबद्ध है। शीर्ष स्तर में रिलीज के प्रकार यानी डीवीडी, ब्लू-रे शामिल हैं। उस स्तर के अंतर्गत क्षेत्र हैं अर्थात। क्षेत्र 1, क्षेत्र 2, आदि। इसलिए, पदानुक्रम जो मुझे चाहिए: डीवीडी - रीज़न 0 - रीज़न 1 - रीज़न 2 - रीज़न 3 - रीज़न 4 - रीज़न 5 - रीज़न 6 ब्लू-रे - -रेजियन ए - मार्गियन बी - मार्गियन C
मैंने अपनी कक्षा में insert_term नामक एक फ़ंक्शन बनाया, ताकि यह पता लगाया जा सके कि कोई शब्द मौजूद है या नहीं, तो इसे डालें:
public function insert_term ($term, $taxonomy, $args = array()) {
if (isset($args['parent'])) {
$parent = $args['parent'];
} else {
$parent = 0;
}
$result = term_exists($term, $taxonomy, $parent);
if ($result == false || $result == 0) {
return wp_insert_term($term, $taxonomy, $args);
} else {
return (array) $result;
}
}
और फिर मैंने कहा कि फ़ंक्शन को शब्दों को सम्मिलित करने के लिए कहा जाता है:
$dvd = $this->insert_term('DVD','veda_release_type');
$this->insert_term('Region 0','veda_release_type',array('parent'=>$dvd['term_id']));
$this->insert_term('Region 1','veda_release_type',array('parent'=>$dvd['term_id']));
$this->insert_term('Region 2','veda_release_type',array('parent'=>$dvd['term_id']));
$this->insert_term('Region 3','veda_release_type',array('parent'=>$dvd['term_id']));
$this->insert_term('Region 4','veda_release_type',array('parent'=>$dvd['term_id']));
$this->insert_term('Region 5','veda_release_type',array('parent'=>$dvd['term_id']));
$this->insert_term('Region 6','veda_release_type',array('parent'=>$dvd['term_id']));
$bd = $this->insert_term('Blu-Ray', 'veda_release_type');
$this->insert_term('Region A','veda_release_type',array('parent'=>$bd['term_id']));
$this->insert_term('Region B','veda_release_type',array('parent'=>$bd['term_id']));
$this->insert_term('Region C','veda_release_type',array('parent'=>$bd['term_id']));
मुझे जो समस्या हो रही है, वह यह है कि भले ही शब्द डेटाबेस में इनपुट किए गए हों, लेकिन वे टैक्सोनॉमी पेज पर दिखाई नहीं देते हैं। सबसे ऊपर, शीर्ष स्तर की शर्तें दिखाई देती हैं। मुझे विभिन्न चीजों को आजमाना होगा जब तक कि यह वर्डप्रेस को उपजी शब्दों को पहचानने के लिए मजबूर न करे। क्या किसी ने इसमें भाग लिया है या बेहतर तरीके से सिफारिश कर सकता है?
संपादित करें: कुछ और ध्यान दिया: मैंने डेटाबेस से शर्तों को हटाने की कोशिश की और फिर शर्तों को घोषित करने वाले प्लगइन को निष्क्रिय और पुन: सक्रिय किया। मूल पृष्ठ में दो मूल शब्द दिखाए गए हैं, लेकिन बच्चे की शर्तें नहीं हैं। बच्चे की शर्तें "पैरेंट" ड्रॉप डाउन मेनू में दिखाई देती हैं जहां आप एक नया शब्द बनाना चाहते हैं। जब मैं एक शब्द जोड़ता हूं, जिसके माता-पिता बच्चे की शर्तों में से एक हैं और पृष्ठ को ताज़ा करते हैं, तो बच्चे की शर्तों को दिखाते हैं।