Удаление подменю в WordPress: функция REMOVE_SUBMENU_PAGE()

Удаление подменю в 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.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *