2010-11-22 39 views

Répondre

5

Où il est indiqué 'taxonomy_to_remove' est l'endroit où vous entrez la taxonomie que vous souhaitez supprimer. Par exemple, vous pouvez le remplacer par l'existant, post_tag ou 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

ne répond pas à la question (version PHP 5.4 minimum!). Cela ne fait que le cacher – Jeremy

41

Je vous suggère de ne pas jouer avec le mondial actuel. Il est plus sûr de supprimer simplement la taxonomie du type de message: register_taxonomy est utilisé à la fois pour la création et la modification.

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

Pour supprimer l'entrée de menu de la barre latérale:

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

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

A travaillé pour moi! On dirait que c'est l'impact le plus localisé. –

+0

Cela fonctionne, mais le lien dans la barre latérale est toujours là! –

+0

Voici comment supprimer l'entrée de menu de la barre latérale: 'function remove_menus() { remove_menu_page ('edit-tags.php? Taxonomy = post_tag'); // Post tags } add_action ('admin_menu', 'remove_menus'); ' – pixeline

2

utiliser dans 'admin_init' insetead crochet non 'init'

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

Peut-être une méthode plus techniquement correcte serait d'utiliser unregister_taxonomy_for_object_type

add_action('init', 'unregister_tags'); 

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

Peut-être pas nécessaire mais vous pouvez vérifier si la taxonomie est déjà associée au type d'objet avant de le supprimer avec 'if (is_object_in_taxonomy (' post ',' post_tag ')) {...} ' – martisj

2

Il y a une nouvelle fonction pour supprimer la taxonomie de WordPress.

Use unregister_taxonomy(string $taxonomy) function

Voir les détails: https://developer.wordpress.org/reference/functions/unregister_taxonomy/

+1

Ceci ne peut pas être utilisé pour les taxonomies intégrées, donc probablement ceci ne peut pas être utilisé pour' tags '? –

+0

Pour enlever intégré dans la taxonomie comme étiquette que nous pouvons utiliser cette fonction ci-dessous: mh_unregister_tags_for_posts fonction() { de unregister_taxonomy_for_object_type ('post_tag', 'post'); } 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

total désinscription et enlever

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