- Описание функции
- Примеры использования
- Создание основного меню
- Добавление подменю
- Установка иконки для меню
- Изменение порядка отображения меню
- Определение прав доступа к меню
- Вопросы и ответы
- Как добавить верхний уровень меню?
- Как изменить текст в заголовке меню?
- Как изменить требуемые права доступа для отображения меню?
- Как задать уникальный идентификатор для меню?
- Как указать функцию для вывода содержимого страницы меню?
- Как добавить иконку к меню?
- Как изменить порядок отображения меню?
- Как удалить иконку из меню?
- Как получить идентификатор страницы меню?
- Связанные элементы
Описание функции
Функция add_menu_page() используется для добавления верхнего уровня страницы меню в административной панели WordPress.
Она позволяет создавать новые пункты меню в главной навигации административной панели, которые могут содержать подпункты. Эти пункты меню могут быть использованы для добавления пользовательских страниц, настроек, отчетов и других функциональных возможностей в административную панель WordPress.
Использование
add_menu_page( string $page_title, string $menu_title, string $capability, string $menu_slug, callable $callback = '', string $icon_url = '', int|float $position = null ): string Код выше добавляет новую страницу меню в административную панель WordPress.
Параметры:
$page_title(обязательный) — Текст, который будет отображаться в тегах заголовка страницы при выборе данного меню.$menu_title(обязательный) — Текст, который будет использоваться для названия меню.$capability(обязательный) — Требуемая возможность для отображения данного меню пользователю.$menu_slug(обязательный) — Уникальное имя, по которому будет ссылаться данное меню. Должно содержать только строчные буквы, цифры, дефисы и символы подчеркивания, чтобы быть совместимым с функциейsanitize_key().$callback(необязательный) — Функция, которая будет вызываться для вывода содержимого данной страницы. По умолчанию: пустая строка.$icon_url(необязательный) — URL иконки, которая будет использоваться для данного меню. Можно передать base64-кодированное изображение SVG с помощью data URI, которое будет окрашено в соответствии с цветовой схемой. Должно начинаться с «data:image/svg+xml;base64,». Можно также передать имя класса помощника Dashicons для использования шрифтовой иконки, например, «dashicons-chart-pie». Передача «none» оставит div.wp-menu-image пустым, чтобы иконку можно было добавить с помощью CSS. По умолчанию: пустая строка.$position(необязательный) — Позиция в порядке меню, на которой должен появиться данный пункт. По умолчанию: null.
Функция возвращает хук страницы, который может быть использован для выполнения дополнительных действий или добавления дополнительных функциональных возможностей.
<?php
/**
* Добавление новой страницы меню в административную панель WordPress.
*/
function my_custom_menu_page() {
// Добавление страницы меню
$page_hook = add_menu_page(
'Моя страница', // Заголовок страницы
'Мое меню', // Название меню
'manage_options', // Требуемая возможность
'my-custom-menu', // Уникальное имя меню
'my_custom_menu_callback', // Функция обратного вызова для вывода содержимого страницы
'dashicons-admin-generic', // Иконка меню
10 // Позиция меню
);
// Добавление действий на хук страницы
add_action( 'load-' . $page_hook, 'my_custom_menu_actions' );
}
/**
* Функция обратного вызова для вывода содержимого страницы меню.
*/
function my_custom_menu_callback() {
// Вывод содержимого страницы меню
echo '<h1>Моя страница</h1>';
echo '<p>Привет, мир!</p>';
}
/**
* Дополнительные действия на странице меню.
*/
function my_custom_menu_actions() {
// Добавление дополнительных действий
// ...
}
// Добавление страницы меню при инициализации административной панели
add_action( 'admin_menu', 'my_custom_menu_page' );
?> В приведенном выше примере кода создается новая страница меню с заголовком «Моя страница» и названием «Мое меню». Для отображения данного меню пользователю требуется возможность «manage_options». Уникальное имя меню установлено как «my-custom-menu». Функция обратного вызова «my_custom_menu_callback()» используется для вывода содержимого страницы меню. Иконка меню установлена как «dashicons-admin-generic». Позиция меню установлена как 10.
Также в примере кода показано, как добавить дополнительные действия на странице меню с помощью хука страницы.
Примеры использования
Создание основного меню
function my_menu_page() {
add_menu_page(
'My Menu Page', // $page_title
'My Menu', // $menu_title
'manage_options', // $capability
'my-menu', // $menu_slug
'my_menu_callback', // $callback
'dashicons-admin-generic', // $icon_url
4 // $position
);
}
add_action( 'admin_menu', 'my_menu_page' );
function my_menu_callback() {
echo '<h1>Welcome to My Menu Page</h1>';
}
Добавление подменю
function my_submenu_page() {
add_menu_page(
'My Menu Page', // $page_title
'My Menu', // $menu_title
'manage_options', // $capability
'my-menu', // $menu_slug
'my_menu_callback', // $callback
'dashicons-admin-generic', // $icon_url
4 // $position
);
add_submenu_page(
'my-menu', // $parent_slug
'My Submenu Page', // $page_title
'My Submenu', // $menu_title
'manage_options', // $capability
'my-submenu', // $menu_slug
'my_submenu_callback' // $callback
);
}
add_action( 'admin_menu', 'my_submenu_page' );
function my_submenu_callback() {
echo '<h1>Welcome to My Submenu Page</h1>';
}
Установка иконки для меню
function my_menu_page() {
add_menu_page(
'My Menu Page', // $page_title
'My Menu', // $menu_title
'manage_options', // $capability
'my-menu', // $menu_slug
'my_menu_callback', // $callback
'dashicons-admin-generic', // $icon_url
4 // $position
);
}
add_action( 'admin_menu', 'my_menu_page' );
function my_menu_callback() {
echo '<h1>Welcome to My Menu Page</h1>';
}
Изменение порядка отображения меню
function my_menu_page() {
add_menu_page(
'My Menu Page', // $page_title
'My Menu', // $menu_title
'manage_options', // $capability
'my-menu', // $menu_slug
'my_menu_callback', // $callback
'dashicons-admin-generic', // $icon_url
4 // $position
);
}
add_action( 'admin_menu', 'my_menu_page' );
function my_menu_callback() {
echo '<h1>Welcome to My Menu Page</h1>';
}
Определение прав доступа к меню
function my_menu_page() {
add_menu_page(
'My Menu Page', // $page_title
'My Menu', // $menu_title
'manage_options', // $capability
'my-menu', // $menu_slug
'my_menu_callback', // $callback
'dashicons-admin-generic', // $icon_url
4 // $position
);
}
add_action( 'admin_menu', 'my_menu_page' );
function my_menu_callback() {
echo '<h1>Welcome to My Menu Page</h1>';
}
Вопросы и ответы
Как добавить верхний уровень меню?
Для добавления верхнего уровня меню в WordPress используется функция add_menu_page(). Она принимает несколько параметров, включая заголовок страницы, текст для меню, требуемые права доступа и другие.
add_menu_page( string $page_title, string $menu_title, string $capability, string $menu_slug, callable $callback = '', string $icon_url = '', int|float $position = null ): string
В результате выполнения функции будет создано верхнее меню, доступное пользователю.
Как изменить текст в заголовке меню?
Чтобы изменить текст в заголовке меню, нужно передать соответствующий параметр $menu_title при вызове функции add_menu_page().
add_menu_page( 'New Page Title', 'New Menu Title', 'manage_options', 'my-menu', 'my_menu_callback' );
В данном примере текст в заголовке меню будет изменен на «New Menu Title».
Как изменить требуемые права доступа для отображения меню?
Для изменения требуемых прав доступа для отображения меню нужно указать соответствующий параметр $capability при вызове функции add_menu_page().
add_menu_page( 'Page Title', 'Menu Title', 'edit_posts', 'my-menu', 'my_menu_callback' );
В данном примере меню будет отображаться только пользователям с правами доступа «edit_posts».
Как задать уникальный идентификатор для меню?
Чтобы задать уникальный идентификатор для меню, необходимо использовать параметр $menu_slug функции add_menu_page(). Этот идентификатор должен быть уникальным для каждой страницы меню и содержать только строчные буквы, цифры, дефисы и подчеркивания.
Пример:
add_menu_page(
'Page Title', // Заголовок страницы
'Menu Title', // Заголовок меню
'manage_options', // Необходимая роль пользователя
'my-menu', // Уникальный идентификатор меню
'my_menu_callback', // Функция для вывода содержимого страницы меню
'dashicons-chart-pie', // Иконка меню
10 // Позиция в меню
);
Как указать функцию для вывода содержимого страницы меню?
Для указания функции, которая будет выводить содержимое страницы меню, используется параметр $callback функции add_menu_page(). Эта функция должна быть определена заранее и принимать необходимые параметры.
Пример:
function my_menu_callback() {
echo 'This is the content of my menu page.';
}
add_menu_page(
'Page Title',
'Menu Title',
'manage_options',
'my-menu',
'my_menu_callback',
'dashicons-chart-pie',
10
);
Как добавить иконку к меню?
Для добавления иконки к меню используется параметр $icon_url функции add_menu_page(). Вы можете использовать URL-адрес иконки или указать имя класса Dashicons для использования шрифтовой иконки.
Пример:
add_menu_page(
'Page Title',
'Menu Title',
'manage_options',
'my-menu',
'my_menu_callback',
'dashicons-chart-pie', // Использование Dashicons
10
);
add_menu_page(
'Page Title',
'Menu Title',
'manage_options',
'my-menu',
'my_menu_callback',
'https://example.com/icon.svg', // Использование URL-адреса иконки
10
);
Как изменить порядок отображения меню?
Для изменения порядка отображения меню в WordPress можно использовать параметр $position функции add_menu_page(). Этот параметр принимает значение типа int или float, которое указывает позицию элемента в порядке меню.
Например, чтобы установить порядок отображения меню на третьем месте, можно использовать следующий код:
add_menu_page( 'Page Title', 'Menu Title', 'manage_options', 'menu-slug', 'callback_function', '', 3 );
Как удалить иконку из меню?
Для удаления иконки из меню в WordPress можно использовать параметр $icon_url функции add_menu_page(). Этот параметр принимает значение типа string и позволяет указать URL иконки или класс Dashicons для иконки.
Чтобы удалить иконку из меню, нужно передать пустую строку в качестве значения параметра $icon_url. Например:
add_menu_page( 'Page Title', 'Menu Title', 'manage_options', 'menu-slug', 'callback_function', '', null );
Как получить идентификатор страницы меню?
Для получения идентификатора страницы меню в WordPress можно использовать возвращаемое значение функции add_menu_page(). Это значение представляет собой хук (hook) страницы меню.
Например, чтобы получить идентификатор страницы меню, можно использовать следующий код:
$menu_page = add_menu_page( 'Page Title', 'Menu Title', 'manage_options', 'menu-slug', 'callback_function' );
$menu_page_hook = $menu_page;
Функция
add_menu_page()в WordPress позволяет добавить верхний уровень меню. Она принимает несколько параметров, включая заголовок страницы, заголовок меню, требуемую возможность для отображения меню, уникальный идентификатор меню и функцию для вывода содержимого страницы. С помощью параметров$positionи$icon_urlможно изменить порядок отображения меню и удалить иконку из меню соответственно. Возвращаемое значение функции представляет собой хук страницы меню, который можно использовать для дальнейшей работы с этой страницей.
Связанные элементы
- Функция
add_submenu_page(): добавляет подстраницу в меню. - Функция
remove_menu_page(): удаляет пункт меню из административной панели. - Функция
remove_submenu_page(): удаляет подстраницу из меню. - Функция
get_admin_page_title(): возвращает заголовок текущей страницы административной панели. - Хук
admin_menu: вызывается при создании меню административной панели. - Класс
WP_Admin_Bar: предоставляет методы для работы с панелью инструментов администратора. - Класс
WP_Screen: предоставляет информацию о текущем экране административной панели.