Как скрыть пункты меню 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
}
Если вам необходимо скрыть ещё какие-то пункты меню, которые не были указаны, то можете вывести их названия с помощью следующего кода.
function debug_admin_menus()
{
global $menu, $pagenow;
if ($pagenow == 'index.php') { // выводим только в «Консоли»
foreach ($menu as $menu_item) {
echo "remove_menu_page('$menu_item[2]');<br>";
}
}
}
add_action('admin_notices', 'debug_admin_menus');
Удаление подпунктов меню - remove_submenu_page()
Для удаления будем использовать функцию:
remove_submenu_page($menu_slug, $submenu_slug);
- $menu_slug - ключ массива;
- $submenu_slug - элемент под индексом 2.
Для получения данных о меню, воспользуйтесь функцией debug_admin_menus().
function debug_admin_menus()
{
global $submenu, $pagenow;
if ($pagenow == 'index.php') {
echo '<pre>' . print_r($submenu, true) . '</pre>';
}
}
add_action('admin_notices', 'debug_admin_menus');
Несколько примеров:
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.
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');
}
add_action('admin_init', 'disable_content_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');
}
}
Надеюсь, вам понравилась данная информация. Если вам интересна тема web-разработки, то можете следить за выходом новых статей в Telegram.
Поделиться с друзьями:
Статьи из данной категории:
Комментарии
- Комментариев пока нет.