Как удалить таксономию из Wordpress? - PullRequest
26 голосов
/ 22 ноября 2010

Я создаю различные пользовательские типы записей и таксономии и хочу удалить таксономию «Метки тегов» из стандартного типа записей «Сообщения».Как мне это сделать?

Спасибо.

Ответы [ 7 ]

42 голосов
/ 03 декабря 2011

Я предлагаю вам не связываться с реальным миром. Безопаснее просто отменить регистрацию таксономии по типу поста: 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' );
9 голосов
/ 15 июня 2016

Возможно, более технически правильным методом будет использование unregister_taxonomy_for_object_type

add_action( 'init', 'unregister_tags' );

function unregister_tags() {
    unregister_taxonomy_for_object_type( 'post_tag', 'post' );
}
4 голосов
/ 10 июля 2011

Там, где написано «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]);
}
2 голосов
/ 21 апреля 2017

Всего отменить регистрацию и удалить (минимальная версия PHP 5.4!)

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');
    });
2 голосов
/ 08 сентября 2016

Появилась новая функция для удаления таксономии из WordPress.

Use unregister_taxonomy( string $taxonomy ) function

Подробнее: https://developer.wordpress.org/reference/functions/unregister_taxonomy/

2 голосов
/ 18 декабря 2014

Используйте его в хуке 'admin_init' вместо 'init'

function unregister_taxonomy(){
    register_taxonomy('post_tag', array());
}
add_action('admin_init', 'unregister_taxonomy');
0 голосов
/ 07 апреля 2017

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

...