remove_submenu_page

Удаляет подпункт пункта меню в админ-панели WordPress. Например, Параметры->Постоянные ссылки.

Хуков нет.

Возвращает

false если не удалось найти и удалить указанный пункт меню.

Использование

<?php remove_submenu_page( $menu_slug, $submenu_slug ) ?>
$menu_slug(строка) (обязательный)
Название пункта меню, подпункт которого нужно удалить. Обычно это название php файла отвечающего за отображение страницы (см. его в адресной строке браузера).
По умолчанию: нет
$submenu_slug(строка) (обязательный)
Название подпункта меню, который нужно удалить.
По умолчанию: нет

Примеры

#1. Удалим страницу ссылку на страницу Параметры->Постоянные ссылки:

remove_submenu_page( 'options-general.php', 'options-permalink.php' );

#2. Так как функция добавлена в версии 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' );
	} else {
		// для версий WP ниже 3.1
		unset( $GLOBALS['submenu']['options-general.php'][25] );
	}
}

В данном примере мы удалили подпункт “Обсуждение” в меню настроек:

Код из


wp-admin/includes/plugin.php

WP 4.7.2

<?php
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;
}