remove_menu_page()

Удаляет верхний пункт меню администратора
Функция WordPress
INT 3.1.0
WordPress Icon
Содержание
  1. Описание функции
  2. Примеры использования
  3. Удаление пункта меню с использованием remove_menu_page()
  4. Скрытие верхнего уровня административного меню
  5. Исключение пункта меню из административной панели
  6. Удаление пункта меню из панели управления
  7. Сокрытие определенного пункта меню в административной панели
  8. Вопросы и ответы
  9. Как удалить пункт меню из административной панели WordPress?
  10. Как удалить верхний уровень меню из административной панели WordPress?
  11. Как скрыть определенный пункт меню в административной панели WordPress?
  12. Как удалить ссылку на определенную страницу из административной панели WordPress?
  13. Как скрыть определенное меню в административной панели WordPress?
  14. Как удалить пункт меню из административной панели только для определенной роли пользователя?
  15. Как удалить пункт меню из административной панели только для определенного пользователя?
  16. Как удалить пункт меню из административной панели только для определенной страницы/поста?
  17. Связанные элементы

Описание функции

Функция remove_menu_page() используется для удаления верхнего уровня административного меню в панели управления WordPress. Она позволяет разработчикам скрыть определенные страницы меню от определенных пользователей или ролей.

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

remove_menu_page( string $menu_slug ): array|false

Функция remove_menu_page() принимает один обязательный параметр:

  • $menu_slug (строка) — слаг меню, которое нужно удалить.

Функция remove_menu_page() возвращает удаленное меню в случае успеха или false, если меню не найдено.


/**
 * Удаляем меню "Tools" из административной панели.
 */
function remove_tools_menu() {
    remove_menu_page( 'tools.php' );
}
add_action( 'admin_menu', 'remove_tools_menu' );

В приведенном выше примере мы используем хук admin_menu для вызова функции remove_tools_menu(), которая удаляет меню «Tools» из административной панели.

Примеры использования

Удаление пункта меню с использованием remove_menu_page()


function remove_menu_page_example() {
    // Удаление пункта меню "Tools"
    remove_menu_page( 'tools.php' );
}
add_action( 'admin_menu', 'remove_menu_page_example' );

В этом примере мы используем функцию remove_menu_page() для удаления пункта меню «Tools» из административной панели WordPress. Функция принимает один обязательный параметр — слаг меню, который нужно удалить. В данном случае, мы передаем ‘tools.php’ в качестве слага.

Скрытие верхнего уровня административного меню


function hide_top_level_menu_example() {
    // Скрытие верхнего уровня меню "Posts"
    remove_menu_page( 'edit.php' );
}
add_action( 'admin_menu', 'hide_top_level_menu_example' );

В этом примере мы используем функцию remove_menu_page() для скрытия верхнего уровня меню «Posts» из административной панели WordPress. Функция принимает один обязательный параметр — слаг меню, который нужно скрыть. В данном случае, мы передаем ‘edit.php’ в качестве слага.

Исключение пункта меню из административной панели


function exclude_menu_item_example( $menu ) {
    // Исключение пункта меню "Comments"
    $exclude_menu = 'edit-comments.php';
    foreach ( $menu as $key => $item ) {
        if ( $exclude_menu == $item[2] ) {
            unset( $menu[$key] );
        }
    }
    return $menu;
}
add_action( 'admin_menu', 'exclude_menu_item_example' );

В этом примере мы используем функцию remove_menu_page() для исключения пункта меню «Comments» из административной панели WordPress. Мы используем хук ‘admin_menu’ и функцию обратного вызова, которая принимает массив меню в качестве параметра. Затем мы проходимся по каждому пункту меню и проверяем, соответствует ли его слаг исключаемому меню. Если да, то удаляем этот пункт меню с помощью функции unset().

Удаление пункта меню из панели управления


function remove_submenu_page_example() {
    // Удаление пункта меню "Tools" из панели управления "Settings"
    remove_submenu_page( 'options-general.php', 'tools.php' );
}
add_action( 'admin_menu', 'remove_submenu_page_example' );

В этом примере мы используем функцию remove_submenu_page() для удаления пункта меню «Tools» из панели управления «Settings» в административной панели WordPress. Функция принимает два обязательных параметра — слаг родительского меню и слаг подменю, которое нужно удалить. В данном случае, мы передаем ‘options-general.php’ в качестве слага родительского меню и ‘tools.php’ в качестве слага подменю.

Сокрытие определенного пункта меню в административной панели


function hide_menu_item_example() {
    // Сокрытие пункта меню "Plugins"
    global $submenu;
    unset( $submenu['plugins.php'][15] );
}
add_action( 'admin_menu', 'hide_menu_item_example' );

В этом примере мы используем глобальную переменную $submenu для сокрытия пункта меню «Plugins» из административной панели WordPress. Мы используем хук ‘admin_menu’ и функцию обратного вызова, в которой удаляем элемент массива $submenu с помощью функции unset(). В данном случае, мы удаляем элемент с индексом 15, который соответствует пункту меню «Plugins».

Вопросы и ответы

Как удалить пункт меню из административной панели WordPress?

Для удаления пункта меню из административной панели WordPress используется функция remove_menu_page(). Она позволяет удалить пункт меню, указав его слаг.

Пример использования:


remove_menu_page( 'slug' );

Как удалить верхний уровень меню из административной панели WordPress?

Функция remove_menu_page() также позволяет удалить верхний уровень меню из административной панели WordPress. Для этого нужно указать слаг верхнего уровня меню.

Пример использования:


remove_menu_page( 'index.php' );

Как скрыть определенный пункт меню в административной панели WordPress?

Для скрытия определенного пункта меню в административной панели WordPress используется функция remove_menu_page(). Нужно указать слаг пункта меню, который нужно скрыть.

Пример использования:


remove_menu_page( 'edit.php' );

Как удалить ссылку на определенную страницу из административной панели WordPress?

Функция remove_menu_page() также позволяет удалить ссылку на определенную страницу из административной панели WordPress. Для этого нужно указать слаг страницы.

Пример использования:


remove_menu_page( 'edit-comments.php' );

Как скрыть определенное меню в административной панели WordPress?

Функция remove_menu_page() позволяет скрыть определенное меню в административной панели WordPress. Для этого необходимо передать в качестве параметра слаг меню, которое нужно скрыть.


remove_menu_page( $menu_slug );

Где $menu_slug — строка, обязательный параметр, представляющий собой слаг меню, которое нужно скрыть.

Как удалить пункт меню из административной панели только для определенной роли пользователя?

Для удаления пункта меню из административной панели только для определенной роли пользователя, можно использовать хук admin_menu и функцию remove_menu_page(). Внутри функции можно проверить текущую роль пользователя и скрыть меню, если оно необходимо скрыть для данной роли.


add_action( 'admin_menu', 'remove_menu_for_role' );
function remove_menu_for_role() {
    global $current_user;
    $user_roles = $current_user->roles;
    $role = array_shift( $user_roles );
    if ( 'editor' === $role ) {
        remove_menu_page( 'tools.php' );
    }
}

В данном примере пункт меню «Tools» будет скрыт только для пользователей с ролью «Editor».

Как удалить пункт меню из административной панели только для определенного пользователя?

Для удаления пункта меню из административной панели только для определенного пользователя, можно использовать хук admin_menu и функцию remove_menu_page(). Внутри функции можно проверить ID текущего пользователя и скрыть меню, если оно необходимо скрыть для данного пользователя.


add_action( 'admin_menu', 'remove_menu_for_user' );
function remove_menu_for_user() {
    $user_id = get_current_user_id();
    if ( 123 === $user_id ) {
        remove_menu_page( 'tools.php' );
    }
}

В данном примере пункт меню «Tools» будет скрыт только для пользователя с ID 123.

Как удалить пункт меню из административной панели только для определенной страницы/поста?

Для удаления пункта меню из административной панели только для определенной страницы или поста, можно использовать хук admin_menu и функцию remove_menu_page(). Внутри функции можно проверить ID текущей страницы/поста и скрыть меню, если оно необходимо скрыть для данной страницы/поста.


add_action( 'admin_menu', 'remove_menu_for_page' );
function remove_menu_for_page() {
    global $pagenow;
    if ( 'edit.php' === $pagenow && isset( $_GET['post'] ) ) {
        $post_id = $_GET['post'];
        if ( 123 === $post_id ) {
            remove_menu_page( 'tools.php' );
        }
    }
}

В данном примере пункт меню «Tools» будет скрыт только для страницы/поста с ID 123.

Функция remove_menu_page() позволяет скрыть определенное меню в административной панели WordPress. Она принимает слаг меню в качестве параметра и возвращает удаленное меню в случае успеха, либо false, если меню не найдено. Эта функция полезна для скрытия определенных меню для разных ролей пользователей, конкретных пользователей или определенных страниц/постов.

Связанные элементы

  • Функция add_menu_page(): регистрирует новое верхнее меню в административной панели.
  • Функция add_submenu_page(): регистрирует новое подменю в административной панели.
  • Функция get_admin_page_title(): возвращает заголовок страницы административной панели.
  • Функция get_admin_page_parent(): возвращает родительское меню страницы административной панели.
  • Хук admin_menu: вызывается при создании меню административной панели.
  • Хук current_screen: вызывается при загрузке текущего экрана административной панели.
  • Класс WP_Admin_Bar: предоставляет методы для работы с панелью инструментов администратора.
  • Класс WP_Screen: предоставляет информацию о текущем экране административной панели.
Обсуждение