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

20 авг. 2013 г., 00:54:15
Просмотры: 26.8K
Голосов: 11

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

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

К сожалению, то же самое не работает для записей:

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

Я использую хук admin_menu: add_action( 'admin_menu', 'function_call' )

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

1
Комментарии

Голосуйте за этот вопрос, нечестивцы!!!

Spencer Williams Spencer Williams
12 мар. 2016 г. 00:55:35
Все ответы на вопрос 5
4
17
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');
}
20 авг. 2013 г. 01:05:58
Комментарии

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

Spencer Williams Spencer Williams
14 мар. 2016 г. 18:10:36

Это не предпочтительный метод, это похоже на удаление с помощью CSS и не гарантирует результата. Посмотрите ответ mbacon40, он выглядит многообещающе.

jnhghy - Alexandru Jantea jnhghy - Alexandru Jantea
21 окт. 2016 г. 00:49:26

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

gmazzap gmazzap
24 окт. 2016 г. 12:25:50

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

jnhghy - Alexandru Jantea jnhghy - Alexandru Jantea
24 окт. 2016 г. 13:15:55
0
12

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

// Удаление рубрик и меток
add_action('init', 'myprefix_remove_tax');
function myprefix_remove_tax() {
    register_taxonomy('category', array());
    register_taxonomy('post_tag', array());
}
17 авг. 2016 г. 17:10:44
0

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

// УДАЛЕНИЕ МЕТАБОКСОВ ЗАПИСИ
function remove_my_post_metaboxes() {
  remove_meta_box( 'categorydiv','post','normal' ); // Метабокс категорий
  remove_meta_box( 'tagsdiv-post_tag','post','normal' ); // Метабокс меток
}
add_action('admin_menu','remove_my_post_metaboxes');
9 дек. 2014 г. 18:42:39
0

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

// Удаление категорий и меток
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');
}
17 окт. 2017 г. 07:01:38
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' );
7 янв. 2020 г. 11:42:41