2010-11-22 20 views
23

मैं विभिन्न कस्टम पोस्ट प्रकार और टैक्सोनोमी बना रहा हूं और मैं डिफ़ॉल्ट 'पोस्ट' पोस्ट प्रकार से 'पोस्ट टैग' वर्गीकरण को हटाना चाहता हूं। मैं यह कार्य कैसे करूं?मैं वर्डप्रेस से वर्गीकरण कैसे हटा सकता हूं?

धन्यवाद।

उत्तर

5

कहां कहता है 'taxonomy_to_remove' वह जगह है जहां आप उस वर्गीकरण को दर्ज करेंगे जिसे आप निकालना चाहते हैं। उदाहरण के लिए आप इसे मौजूदा, post_tag या category से प्रतिस्थापित कर सकते हैं।

add_action('init', 'unregister_taxonomy'); 
function unregister_taxonomy(){ 
    global $wp_taxonomies; 
    $taxonomy = 'taxonomy_to_remove'; 
    if (taxonomy_exists($taxonomy)) 
     unset($wp_taxonomies[$taxonomy]); 
} 
+0

सवाल का जवाब नहीं है (कम से कम PHP संस्करण 5.4!)। यह सिर्फ – Jeremy

41

मेरा सुझाव है कि आप वास्तविक वैश्विक के साथ गड़बड़ नहीं करते हैं। पोस्ट प्रकार से वर्गीकरण को आसानी से अपनाना सुरक्षित है: register_taxonomy दोनों सृजन और संशोधन दोनों के लिए उपयोग किया जाता है।

function ev_unregister_taxonomy(){ 
    register_taxonomy('post_tag', array()); 
} 
add_action('init', 'ev_unregister_taxonomy'); 

साइडबार मेनू प्रविष्टि निकालने के लिए:

// Remove menu 
function remove_menus(){ 
    remove_menu_page('edit-tags.php?taxonomy=post_tag'); // Post tags 
} 

add_action('admin_menu', 'remove_menus'); 
+0

मेरे लिए काम करता है छुपाता है! सबसे स्थानीयकृत प्रभाव की तरह लगता है। –

+0

यह काम करता है, लेकिन साइडबार में लिंक अभी भी है! –

+0

साइडबार मेनू प्रविष्टि को हटाने का तरीका यहां दिया गया है: 'function remove_menus() { remove_menu_page (' edit-tag.php? Taxonomy = post_tag '); // पोस्ट टैग } add_action ('admin_menu', 'remove_menus'); ' – pixeline

2

'admin_init' में इसका इस्तेमाल हुक insetead नहीं 'init'

function unregister_taxonomy(){ 
    register_taxonomy('post_tag', array()); 
} 
add_action('admin_init', 'unregister_taxonomy'); 
7

शायद एक और अधिक तकनीकी रूप से सही विधि का उपयोग किया जाएगा unregister_taxonomy_for_object_type

add_action('init', 'unregister_tags'); 

function unregister_tags() { 
    unregister_taxonomy_for_object_type('post_tag', 'post'); 
} 
+1

आवश्यक नहीं हो सकता है लेकिन आप यह जांच सकते हैं कि क्या वर्गीकरण पहले से ही ऑब्जेक्ट प्रकार से जुड़ा हुआ है, यदि इसे 'if (is_object_in_taxonomy (' पोस्ट ',' post_tag ')) {...} ' – martisj

2

वर्डप्रेस से वर्गीकरण को हटाने के लिए नया कार्य है।

Use unregister_taxonomy(string $taxonomy) function

विवरण देखें: https://developer.wordpress.org/reference/functions/unregister_taxonomy/

+1

इसका उपयोग अंतर्निहित टैक्सोनोमीज़ के लिए नहीं किया जा सकता है, इसलिए संभवतः इसका उपयोग' टैग 'के लिए नहीं किया जा सकता है? –

+0

को हटाने में निर्मित टैग की तरह वर्गीकरण हम नीचे इस फ़ंक्शन का उपयोग कर सकते हैं के लिए: समारोह mh_unregister_tags_for_posts() { unregister_taxonomy_for_object_type ('post_tag', 'पोस्ट'); } add_action ('init', 'mh_unregister_tags_for_posts'); –

0

add_action('admin_menu', 'remove_menu_items'); function remove_menu_items() { remove_submenu_page('edit.php','edit-tags.php?taxonomy=post_tag'); }

1

कुल अपंजीकृत और हटाने

add_action('init', function(){ 
     global $wp_taxonomies; 
     unregister_taxonomy_for_object_type('category', 'post'); 
     unregister_taxonomy_for_object_type('post_tag', 'post'); 
     if (taxonomy_exists('category')) 
      unset($wp_taxonomies['category']); 
     if (taxonomy_exists('post_tag')) 
      unset($wp_taxonomies['post_tag']); 
     unregister_taxonomy('category'); 
     unregister_taxonomy('post_tag'); 
    }); 
संबंधित मुद्दे