Я создаю различные настраиваемые типы сообщений и таксономии, и я хочу удалить таксономию «Теги сообщений» из типа сообщений «Сообщения» по умолчанию. Как мне это сделать?
Спасибо.
Я создаю различные настраиваемые типы сообщений и таксономии, и я хочу удалить таксономию «Теги сообщений» из типа сообщений «Сообщения» по умолчанию. Как мне это сделать?
Спасибо.
Я предлагаю вам не связываться с фактическим глобальным. Безопаснее просто отменить регистрацию таксономии из типа записи: 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' );
function remove_menus(){ remove_menu_page('edit-tags.php?taxonomy=post_tag'); // Post tags } add_action( 'admin_menu', 'remove_menus' );
- person pixeline; 23.11.2014
register_taxonomy( 'post_tag', array(), array('show_in_nav_menus' => false) );
- person Will Haynes; 04.04.2015
unregister_taxonomy('product_tag')
(для woocommerce) и получал странные ошибки в журнале. Повторная регистрация его как пустого массива в основном имела тот же эффект, и я не получил никаких ошибок ????
- person Brad Adams; 30.03.2017
Возможно, более технически правильным методом было бы использование unregister_taxonomy_for_object_type
.
add_action( 'init', 'unregister_tags' );
function unregister_tags() {
unregister_taxonomy_for_object_type( 'post_tag', 'post' );
}
if ( is_object_in_taxonomy( 'post', 'post_tag' ) ) { ... }
- person martisj; 02.01.2017
Там, где написано «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]);
}
Полная отмена регистрации и удаление (минимальная версия 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');
});
Появилась новая функция для удаления таксономии из WordPress.
Use unregister_taxonomy( string $taxonomy ) function
См. подробности: https://developer.wordpress.org/reference/functions/unregister_taxonomy/
Используйте его в хуке 'admin_init' insetead, а не 'init'
function unregister_taxonomy(){
register_taxonomy('post_tag', array());
}
add_action('admin_init', 'unregister_taxonomy');