Функция remove_menu_page()
в WordPress позволяет удалять пункты меню верхнего уровня из административной панели. Это может быть полезно для настройки интерфейса админки, если вы хотите скрыть определенные элементы меню от пользователей.
remove_menu_page( string $menu_slug );
Параметры
$menu_slug
(string): Слаг (идентификатор) страницы меню, которую вы хотите удалить. Обычно это имя PHP файла, который управляет отображением соответствующего меню, напримерupload.php
для медиафайлов.
Возвращаемое значение
Функция remove_menu_page()
не возвращает значений. Она удаляет указанный элемент меню и не предоставляет информацию о результате операции. Однако, в случае успешного удаления меню, это приводит к удалению соответствующего элемента из административной панели. В случае неудачи, функция возвращает false
.
Примечания
- Удаление только визуальное: Обратите внимание, что
remove_menu_page()
удаляет пункт меню только из визуального интерфейса. Это значит, что доступ к соответствующим страницам по прямым ссылкам (например, введя URL вручную в браузере) остаётся возможным. Для обеспечения безопасного доступа и предотвращения несанкционированного использования, рекомендуется дополнительно управлять правами доступа пользователей. - Хук для вызова: Функцию
remove_menu_page()
следует вызывать в хук-функцииadmin_menu
. Это обеспечит правильную интеграцию и удаление меню в момент загрузки административной панели. - Удаление подменю: Если вам нужно удалить подменю внутри главного меню, используйте функцию
remove_submenu_page()
. Эта функция позволяет более детально управлять пунктами подменю. - Нет хуков: Функция
remove_menu_page()
не предоставляет дополнительных хуков для управления её работой.
Пример использования
Рассмотрим пример использования функции remove_menu_page()
для удаления определенных пунктов меню из административной панели WordPress.
// Удалить пункт меню "Пользователи" из административной панели
function genius_custom_menu_removals() {
// Удаляем меню "Пользователи"
remove_menu_page('users.php');
// Удаляем меню "Комментарии"
remove_menu_page('edit-comments.php');
}
// Хук для вызова функции удаления меню в админ-меню
add_action('admin_menu', 'genius_custom_menu_removals');
В этом примере мы удаляем два пункта меню из административной панели: «Пользователи» и «Комментарии». Сначала мы определяем функцию my_custom_menu_removals()
, в которой используем remove_menu_page()
для удаления меню. Затем, с помощью хука admin_menu
, подключаем эту функцию, чтобы она выполнялась при создании административного меню.
Удалить больше пунктов
Вот пример использования функции remove_menu_page()
для удаления большего количества пунктов меню из административной панели:
add_action('admin_menu', 'remove_menus');
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'); // Параметры
}
Заключение
Функция remove_menu_page()
предоставляет простую и эффективную возможность для настройки административной панели WordPress. Это позволяет вам скрывать ненужные элементы меню, улучшая интерфейс и повышая удобство работы для администраторов и редакторов. Однако, важно помнить о том, что удаление меню не блокирует доступ к страницам через прямые ссылки, поэтому контроль доступа остаётся необходимым.