Удалить категории / теги из меню администратора


8

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

remove_submenu_page( 'themes.php', 'widgets.php' );

К сожалению, это не работает для сообщений:

remove_submenu_page( 'edit.php', 'edit-tags.php' );

Я использую действие admin_menu: add_action( 'admin_menu', 'function_call' )

Нужно ли добавить что-то еще?


2
Ответьте на этот вопрос, вы, язычники!
Спенсер Уильямс

Ответы:


13
add_action('admin_menu', 'my_remove_sub_menus');

function my_remove_sub_menus() {
    remove_submenu_page('edit.php', 'edit-tags.php?taxonomy=category');
    remove_submenu_page('edit.php', 'edit-tags.php?taxonomy=post_tag');
}

Я не вижу, чтобы это скрывало области тегов и категорий в разделе «Быстрое редактирование», но я remove_meta_boxработаю так, как описано.
Спенсер Уильямс

Это не предпочтительный метод, он, как удаление их с помощью CSS, ничего не гарантирует. проверьте ответ mbacon40, выглядит многообещающе.
jnhghy - Александру Jantea

@ jnhghy-JanteaAlexandru remove_submenu_pageвовсе не использовать CSS , чтобы удалить подменю, он удаляет форму ввода в глобальный массив меню (см источник ) , так что HTML разметка меню не отображается на всех (а не CSS-скрытый). Тем не менее, это правда , что в некоторых случаях не может запретить пользователям доступ к экрану для удаленного подменю непосредственно (см билет # 18850 ) , но OP попросили удалить из меню, и это путь.
gmazzap

@ gmazzap Я делал компарацию. Удаление этого способа не будет гарантировать, что теги не будут добавлены другими средствами (интерфейс), я пытался указать, что это удаляет только пункт меню, а не соединение типа записей с таксономией. :)
jnhghy - Александру Jantea

7

Если вы хотите полностью удалить категории и теги, вы можете сделать это следующим образом:

// Remove Categories and Tags
add_action('init', 'myprefix_remove_tax');
function myprefix_remove_tax() {
    register_taxonomy('category', array());
    register_taxonomy('post_tag', array());
}

5

Вы также можете удалить мета-поля со страницы создания поста.

// REMOVE POST META BOXES
function remove_my_post_metaboxes() {
  remove_meta_box( 'categorydiv','post','normal' ); // Categories Metabox
  remove_meta_box( 'tagsdiv-post_tag','post','normal' ); // Tags Metabox
}
add_action('admin_menu','remove_my_post_metaboxes');

1

Благодаря @ mbacon40 и @gmazzap я смог использовать это для удаления меток и категорий товаров (product_tag и product_cat) из моего меню и со страниц добавления / редактирования товаров.

// Remove Categories and Tags
add_action('init', 'myprefix_remove_tax');
function myprefix_remove_tax() {
    register_taxonomy('product_cat', array());
    register_taxonomy('product_tag', array());
}

add_action('admin_menu', 'my_remove_sub_menus');
function my_remove_sub_menus() {
    remove_submenu_page('edit.php', 'edit-tags.php?    taxonomy=product_cat&post_type=product');
    remove_submenu_page('edit.php', 'edit-tags.php?    taxonomy=product_tag&post_type=product');
}

0

по какой-то причине edit.php не работает на моей установке 5.3

Это однако работает

remove_submenu_page( 'edit-tags.php?taxonomy=category', 'edit-tags.php?taxonomy=post_tag' );
remove_submenu_page( 'edit-tags.php?taxonomy=category', 'edit-tags.php?taxonomy=category' );
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.