Как скрыть пункты меню WordPress
Скроем отображение неиспользуемых пунктов меню в админке WordPress, изменим их порядок. А так же рассмотрим, как отключить редактор WordPress для определённых страниц.
Содержание:
- Удаление главных пунктов меню;
- Удаление вложенных пунктов меню;
- Произвольная сортировка пунктов меню;
- Отключение редактора.
- Отключение редактора на определённых страницах.

Удаление пунктов меню верхнего уровня — remove_menu_page()
Чтобы скрыть необходимый пункт меню в админке, добавьте следующий код в functions.php.
add_action("admin_menu", "remove_menus");
function remove_menus() {
remove_menu_page("index.php"); # Консоль
remove_menu_page("edit.php"); # Записи
remove_menu_page("edit-comments.php"); # Комментарии
remove_menu_page("edit.php?post_type=page"); # Страницы
remove_menu_page("upload.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"); # Параметры
remove_menu_page("edit.php?post_type=acf-field-group"); # ACF
}
Если вам необходимо скрыть ещё какие-то пункты меню, которые не были указаны, то можете вывести их названия с помощью следующего кода.
add_action("admin_notices", "debug_admin_menus");
function debug_admin_menus()
{
global $menu, $pagenow;
if ($pagenow == "index.php") { // выводим только в «Консоли»
foreach ($menu as $menu_item) {
echo "remove_menu_page("$menu_item[2]");<br>";
}
}
}
Удаление подпунктов меню — remove_submenu_page()
Для удаления будем использовать функцию:
remove_submenu_page($menu_slug, $submenu_slug);
- $menu_slug — ключ массива;
- $submenu_slug — элемент под индексом 2.
Для получения данных о меню, воспользуйтесь функцией debug_admin_menus().
add_action("admin_notices", "debug_admin_menus");
function debug_admin_menus()
{
global $submenu, $pagenow;
if ($pagenow == "index.php") {
echo "<pre>" . print_r($submenu, true) . "</pre>";
}
}
Несколько примеров:
add_action("admin_menu", "remove_menus", 99999);
function remove_menus()
{
remove_submenu_page("edit.php", "edit-tags.php?taxonomy=post_tag"); # «Записи» - «Метки»
remove_submenu_page("themes.php", "theme-editor.php"); # «Внешний вид» - «Редактор тем»
remove_submenu_page("woocommerce", "wc-admin"); # «WooCommerce» - «Главная»
}
Как изменить порядок пунктов меню в админке WordPress
Чтобы изменить стандартный порядок пунктов меню в админке на произвольный, необходимо лишь переставить пункты местами в следующем коде.
if (is_admin()) {
add_filter("custom_menu_order", "__return_true"); # включаем ручную сортировку
add_filter("menu_order", "custom_menu_order"); # ручная сортировка
function custom_menu_order($menu_order)
{
if (!$menu_order) return true;
return array(
"index.php", # Консоль
"edit.php", # Записи
"edit-comments.php", # Комментарии
"separator1", # ~ Отступ ~
"edit.php?post_type=page", # Страницы
"edit.php?post_type=services", # Услуги
"edit.php?post_type=doctors", # Врачи
"edit.php?post_type=reviews", # Отзывы
"edit.php?post_type=sertificate", # Сертификаты
"edit.php?post_type=stocks", # Акции
"edit.php?post_type=works", # Работы клиники
"separator1", # ~ Отступ ~
"upload.php", # Медиафайлы
"themes.php", # Внешний вид
"plugins.php", # Плагины
"users.php", # Пользователи
"tools.php", # Инструменты
"options-general.php", # Настройки
);
}
}
Как отключить редактор WordPress

Для отключения редактора WordPress на всех страницах воспользуемся функцией remove_post_type_support.
add_action("admin_init", "disable_content_editor");
function disable_content_editor()
{
remove_post_type_support("page", "editor");
}
Для всех статей отключение редактора будет выглядеть следующим образом.
add_action("admin_init", "disable_content_editor");
function disable_content_editor()
{
remove_post_type_support("post", "editor");
}
Отключить редактор WordPress на определённых страницах
Отключим редактор WordPress на страницах с определённым шаблоном.
add_action("admin_init", "hide_editor");
function hide_editor()
{
// Получаем id записи
if (isset($_GET["post"])) $post_id = $_GET["post"];
else $post_id = $_POST["post_ID"];
if (!isset($post_id) || empty($post_id)) return;
// Получаем название шаблона страницы
$template_file = get_post_meta($post_id, "_wp_page_template", true);
if ( // Названия шаблонов
$template_file == "index.php" ||
$template_file == "page-about.php" ||
$template_file == "page-projects.php" ||
$template_file == "page-join.php"
) {
remove_post_type_support("page", "editor");
}
}
На страницах с определёнными ID.
// Disable editor
add_action('admin_init', 'hide_editor');
function hide_editor()
{
if (!isset($_GET['post']) || empty($_GET['post'])) return;
if (in_array($_GET['post'], array(13))) {
remove_post_type_support('page', 'editor');
}
}
Надеюсь, вам понравилась данная информация. Если вам интересна тема web-разработки, то можете следить за выходом новых статей в Telegram.
Поделиться с друзьями:
Статьи из данной категории:
Комментарии (2)
- Юрий
- Only to top