WordPress как на ладони
rgbcode is looking for WordPress developers.

remove_submenu_page()WP 3.1.0

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

Хуков нет.

Возвращает

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

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

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

Примеры

0

#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] );
	}
}

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

0

#2 Массив подпунктов меню

Элементы из этого массива нужно указывать в этой функции:

$menu_slug - ключ массива.
$submenu_slug - третий элемент массива.

Array (
	[index.php] => Array
			[0] => Array
					[0] => Главная
					[1] => read
					[2] => index.php

			[10] => Array
					[0] => Обновления <span class='update-plugins count-0'><span class='update-count'>0</span></span>
					[1] => update_core
					[2] => update-core.php

	[upload.php] => Array
			[5] => Array
					[0] => Библиотека
					[1] => upload_files
					[2] => upload.php

			[10] => Array
					[0] => Добавить новый
					[1] => upload_files
					[2] => media-new.php

	[edit-comments.php] => Array
			[0] => Array
					[0] => Все комментарии
					[1] => edit_posts
					[2] => edit-comments.php

	[edit.php] => Array
			[5] => Array
					[0] => Все посты
					[1] => edit_posts
					[2] => edit.php

			[10] => Array
					[0] => Добавить пост
					[1] => edit_posts
					[2] => post-new.php

			[15] => Array
					[0] => Рубрики
					[1] => manage_categories
					[2] => edit-tags.php?taxonomy=category

			[16] => Array
					[0] => Метки
					[1] => manage_post_tags
					[2] => edit-tags.php?taxonomy=post_tag

	[edit.php?post_type=page] => Array
			[5] => Array
					[0] => Все страницы
					[1] => edit_pages
					[2] => edit.php?post_type=page

			[10] => Array
					[0] => Добавить новую
					[1] => edit_pages
					[2] => post-new.php?post_type=page

	[themes.php] => Array
			[5] => Array
					[0] => Темы
					[1] => switch_themes
					[2] => themes.php

			[6] => Array
					[0] => Настроить
					[1] => customize
					[2] => customize.php?return=%2Fwp-admin%2F
					[3] =>
					[4] => hide-if-no-customize

			[7] => Array
					[0] => Виджеты
					[1] => edit_theme_options
					[2] => widgets.php

			[10] => Array
					[0] => Меню
					[1] => edit_theme_options
					[2] => nav-menus.php

	[plugins.php] => Array
			[5] => Array
					[0] => Установленные
					[1] => activate_plugins
					[2] => plugins.php

			[10] => Array
					[0] => Добавить новый
					[1] => install_plugins
					[2] => plugin-install.php

	[users.php] => Array
			[5] => Array
					[0] => Все пользователи
					[1] => list_users
					[2] => users.php

			[10] => Array
					[0] => Добавить нового
					[1] => create_users
					[2] => user-new.php

			[15] => Array
					[0] => Ваш профиль
					[1] => read
					[2] => profile.php

	[tools.php] => Array
			[5] => Array
					[0] => Все инструменты
					[1] => edit_posts
					[2] => tools.php

			[10] => Array
					[0] => Импорт
					[1] => import
					[2] => import.php

			[15] => Array
					[0] => Экспорт
					[1] => export
					[2] => export.php

	[options-general.php] => Array
			[10] => Array
					[0] => Общие
					[1] => manage_options
					[2] => options-general.php

			[15] => Array
					[0] => Написание
					[1] => manage_options
					[2] => options-writing.php

			[20] => Array
					[0] => Чтение
					[1] => manage_options
					[2] => options-reading.php

			[30] => Array
					[0] => Медиафайлы
					[1] => manage_options
					[2] => options-media.php

			[40] => Array
					[0] => Постоянные ссылки
					[1] => manage_options
					[2] => options-permalink.php

			[45] => Array
					[0] => Конфиденциальность
					[1] => manage_privacy_options
					[2] => privacy.php
)

Заметки

  • Global. Массив. $submenu

Список изменений

С версии 3.1.0 Введена.

Код remove_submenu_page() WP 6.6.2

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;
}
5 комментариев
    Войти