remove_submenu_page()
Удаляет подпункт пункта меню в админ-панели WordPress. Например, Параметры > Постоянные ссылки.
Хуков нет.
Возвращает
Массив|false. false если не удалось найти и удалить указанный пункт меню.
Использование
remove_submenu_page( $menu_slug, $submenu_slug );
- $menu_slug(строка) (обязательный)
- Название пункта меню, подпункт которого нужно удалить. Обычно это название php файла отвечающего за отображение страницы (см. его в адресной строке браузера).
- $submenu_slug(строка) (обязательный)
- Название подпункта меню, который нужно удалить. Обычно это название php файла отвечающего за отображение страницы (см. его в адресной строке браузера). Указывать нужно вместо с параметрами запроса и в url_encode().
Примеры
#1 Удалим страницу ссылку на страницу Параметры->Постоянные ссылки:
remove_submenu_page( 'options-general.php', 'options-permalink.php' );
Так как функция добавлена в версии 3.1, возможно, что нам понадобится совместимость с более ранними версиями ВП, организовать её можно таким образом, добавив код в function.php:
add_action( 'admin_menu', 'my_remove_menu_pages' );
function my_remove_menu_pages() {
// WP 3.1+
if ( function_exists('remove_menu_page') ) {
remove_submenu_page( 'options-general.php', 'options-discussion.php' );
}
// WP ниже 3.1
else {
unset( $GLOBALS['submenu']['options-general.php'][25] );
}
}
В данном примере мы удалили подпункт "Обсуждение" в меню настроек:
#2 Массив подпунктов меню
Элементы из этого массива нужно указывать в этой функции:
$menu_slug - ключ массива.
$submenu_slug - третий элемент массива.
Заметки
- Global. Массив.
$submenu
Список изменений
| С версии 3.1.0 | Введена. |
Код remove_submenu_page() remove submenu page WP 7.0.3
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;
}