Как скрыть меню в админке WordPress
Я хочу скрыть некоторые меню в админ-панели: Внешний вид, Плагины и Инструменты.
Как скрыть их без плагина?
И как я могу легко вернуть их обратно позже?

Вы можете сделать это с помощью remove_menu_page. Добавьте соответствующий слаг меню в functions.php вашей темы или плагина.
<?php remove_menu_page( $menu_slug ) ?>
Обратите внимание, что пользователи все равно могут получить доступ к этим меню через прямую ссылку. Если вы хотите заблокировать доступ пользователя к меню, вам нужно настроить роль пользователя и убедиться, что у него нет соответствующих прав.
Вот список примеров слогов для меню, включенных в чистую установку WordPress.
<?php
function remove_menus(){
remove_menu_page( 'index.php' ); //Консоль
remove_menu_page( 'edit.php' ); //Записи
remove_menu_page( 'upload.php' ); //Медиафайлы
remove_menu_page( 'edit.php?post_type=page' ); //Страницы
remove_menu_page( 'edit-comments.php' ); //Комментарии
remove_menu_page( 'themes.php' ); //Внешний вид
remove_menu_page( 'plugins.php' ); //Плагины
remove_menu_page( 'users.php' ); //Пользователи
remove_menu_page( 'tools.php' ); //Инструменты
remove_menu_page( 'options-general.php' ); //Настройки
}
add_action( 'admin_menu', 'remove_menus' );
?>

Удаляет ли это также их из админ-панели на фронтенде для авторизованных пользователей?

@RyanLoremIpsum: как если мы хотим скрыть только post->tag? (не все меню post)

Я не понимаю вопрос. Если вы спрашиваете, как удалить пункт подменю "Метки" из меню "Записи" в админ-панели, это можно сделать с помощью remove_submenu_page( $menu_slug, $submenu_slug );
. Примеры можно найти в документации remove submenu page в WordPress codex.

можно сделать с помощью remove_menu_page()
попробуйте эти варианты
Удаление пункта меню в админ-панели WordPress
Удаление ненужных элементов из боковой панели админки WordPress

Это отличный фрагмент кода из плагина Core Functionality от Bill Erickson.
/**
* Удаление пунктов меню
* @since 1.0.0
*
* Удалите неиспользуемые пункты меню, добавив их в массив.
* См. закомментированный список пунктов меню для справки.
*
*/
function ni_remove_menus () {
global $menu;
// Пример:
//$restricted = array(__('Консоль'), __('Записи'), __('Медиафайлы'), __('Ссылки'), __('Страницы'), __('Внешний вид'), __('Инструменты'), __('Пользователи'), __('Настройки'), __('Комментарии'), __('Плагины'));
end ($menu);
while (prev($menu)){
$value = explode(' ',$menu[key($menu)][0]);
if(in_array($value[0] != NULL?$value[0]:"" , $restricted) {
unset($menu[key($menu)]);
}
}
}
add_action( 'admin_menu', 'ni_remove_menus' );
Раскомментируйте массив $restricted и включите в него пункты меню, которые хотите скрыть. В примере приведены все пункты меню для справки.
