Удаление подменю в WordPress с помощью функции REMOVE_SUBMENU_PAGE()
Функция remove_submenu_page()
позволяет удалять подменю в админ-панели WordPress. Это может быть полезно, если вы хотите убрать ненужные ссылки из меню для удобства работы.
Пример использования
Вот несколько примеров, как можно использовать эту функцию:
remove_submenu_page('themes.php', 'nav-menus.php');
remove_submenu_page('tools.php', 'plugin_submenu_slug');
remove_submenu_page('plugin_menu_slug', 'plugin_submenu_slug');
Как работает функция
Функция определена следующим образом:
remove_submenu_page( $menu_slug, $submenu_slug );
- $menu_slug (строка, обязательный параметр): слаг (короткое название) родительского меню.
- $submenu_slug (строка, обязательный параметр): слаг подменю, которое вы хотите удалить.
Что возвращает функция
Функция возвращает либо массив (информацию о удаленном подменю) в случае успешного удаления, или false
, если подменю не найдено.
Примеры использования
Удаление ссылки на страницу "Постоянные ссылки"
Рассмотрим пример, как удалить ссылку на страницу "Постоянные ссылки" в настройках:
remove_submenu_page('options-general.php', 'options-permalink.php');
Если вам нужно, чтобы ваш код работал с более старыми версиями WordPress, вы можете сделать это следующим образом, добавив код в файл functions.php
вашей темы:
add_action('admin_menu', 'my_remove_menu_pages');
function my_remove_menu_pages() {
// Для WordPress 3.1 и выше
if (function_exists('remove_menu_page')) {
remove_submenu_page('options-general.php', 'options-discussion.php');
}
// Для версий ниже 3.1
else {
unset($GLOBALS['submenu']['options-general.php'][25]);
}
}
В этом примере мы убрали пункт "Обсуждение" из меню настроек.
Массив пунктов меню
Вот пример массива, из которого можно извлекать элементы для использования в функции:
Array (
[index.php] => Array (
[0] => Array (
[0] => Home
[1] => read
[2] => index.php
),
[10] => Array (
[0] => Updates 0
[1] => update_core
[2] => update-core.php
)
),
// ... другие пункты меню
)
Чтобы правильно указать слаг подменю, используйте ключи этого массива. Например, если вам нужно удалить подменю "Обсуждения", вы используете:
- $menu_slug: это слаг главного меню, например,
options-general.php
. - $submenu_slug: это слаг подменю, например,
options-discussion.php
.
Примечания
- Глобальная переменная:
Array $submenu
Изменения
Функция remove_submenu_page()
была добавлена в версии WordPress 3.1.0 и актуальна по сей день.
Код функции
Вот как выглядит код функции remove_submenu_page()
:
function remove_submenu_page( $menu_slug, $submenu_slug ) {
global $submenu;
if (!isset($submenu[$menu_slug])) {
return false;
}
foreach ($submenu[$menu_slug] as $i => $item) {
if ($submenu_slug === $item[2]) {
unset($submenu[$menu_slug][$i]);
return $item;
}
}
return false;
}
Функция проверяет, существует ли подменю, и если да — удаляет его, возвращая соответствующую информацию. Если подменю не найдено, возвращает false
.