- Описание функции
- Примеры использования
- Добавление подраздела в меню
- Отображение контента на странице подраздела
- Установка прав доступа
- Уникальный идентификатор подраздела
- Изменение порядка отображения подраздела
- Вопросы и ответы
- Как создать подменю в административной панели WordPress?
- Как изменить заголовок подменю в административной панели WordPress?
- Как изменить текст ссылки подменю в административной панели WordPress?
- Как изменить требуемую роль для отображения подменю в административной панели WordPress?
- Как изменить уникальный идентификатор подменю в административной панели WordPress?
- Как изменить функцию обратного вызова для вывода содержимого страницы подменю в административной панели WordPress?
- Как изменить порядок отображения подменю в административной панели WordPress?
- Как получить хук страницы подменю в административной панели WordPress?
- Как проверить, имеет ли пользователь необходимые права для отображения подменю в административной панели WordPress?
- Связанные элементы
Описание функции
Функция add_submenu_page() добавляет подстраницу в меню административной панели WordPress. Она позволяет создать новый пункт меню внутри существующего раздела меню. Подстраница может содержать собственное содержимое и функциональность.
Использование
add_submenu_page( string $parent_slug, string $page_title, string $menu_title, string $capability, string $menu_slug, callable $callback = '', int|float $position = null ): string|false Функция add_submenu_page() принимает следующие параметры:
$parent_slug(обязательный): Слаг родительского меню (или имя файла стандартной страницы администратора WordPress).$page_title(обязательный): Текст, который будет отображаться в тегах <title> страницы при выборе пункта меню.$menu_title(обязательный): Текст, который будет использоваться для отображения пункта меню.$capability(обязательный): Требуемая возможность для отображения этого меню пользователю.$menu_slug(обязательный): Слаг, по которому будет ссылаться на это меню. Должен быть уникальным для этого меню и содержать только строчные буквы, цифры, дефисы и символы подчеркивания для совместимости с функциейsanitize_key().$callback(необязательный): Функция, которая будет вызываться для вывода содержимого этой страницы. По умолчанию: пустая строка.$position(необязательный): Позиция в порядке меню, в котором этот элемент должен появиться. По умолчанию:null.
Функция возвращает хук страницы, или false, если у пользователя нет необходимых прав.
<?php
/**
* Добавляет подстраницу в меню "Настройки".
*
* @return string|false Хук страницы или false, если у пользователя нет необходимых прав.
*/
function wpdocs_add_submenu_page() {
// Добавляем подстраницу в меню "Настройки"
$parent_slug = 'options-general.php';
$page_title = 'Моя подстраница';
$menu_title = 'Моя подстраница';
$capability = 'manage_options';
$menu_slug = 'my-submenu';
$callback = 'my_submenu_page_callback';
$position = null;
return add_submenu_page( $parent_slug, $page_title, $menu_title, $capability, $menu_slug, $callback, $position );
}
add_action( 'admin_menu', 'wpdocs_add_submenu_page' );
/**
* Функция обратного вызова для вывода содержимого подстраницы.
*/
function my_submenu_page_callback() {
// Выводим содержимое подстраницы
echo '<h2>Моя подстраница</h2>';
echo '<p>Это содержимое моей подстраницы.</p>';
}
?> В приведенном выше примере кода функция wpdocs_add_submenu_page() добавляет подстраницу с названием «Моя подстраница» в меню «Настройки». Пользователь должен иметь возможность управления настройками (manage_options), чтобы увидеть эту подстраницу. Функция обратного вызова my_submenu_page_callback() выводит содержимое подстраницы, включая заголовок и абзац текста.
Примеры использования
Добавление подраздела в меню
add_submenu_page( 'parent_slug', 'Page Title', 'Menu Title', 'capability', 'menu_slug', 'callback_function' );
Функция add_submenu_page() используется для добавления подраздела в меню административной панели WordPress. Она принимает следующие параметры:
parent_slug(обязательный) — slug родительского меню или имя файла стандартной страницы административной панели WordPress.page_title(обязательный) — текст, который будет отображаться в тегах title на странице при выборе меню.menu_title(обязательный) — текст, который будет использоваться для отображения подраздела в меню.capability(обязательный) — требуемая возможность для отображения этого подраздела пользователю.menu_slug(обязательный) — slug, по которому можно обратиться к этому подразделу. Должен быть уникальным для данного подраздела и содержать только строчные буквы, цифры, дефисы и символы подчеркивания для совместимости с функциейsanitize_key().callback(необязательный) — функция, которая будет вызываться для вывода содержимого на этой странице. По умолчанию: пустая строка.position(необязательный) — позиция в порядке отображения этого элемента меню. По умолчанию: null.
Функция возвращает hook_suffix созданной страницы или false, если у пользователя нет требуемой возможности.
Отображение контента на странице подраздела
function my_submenu_page_callback() {
echo 'This is the content of my submenu page.';
}
add_submenu_page( 'parent_slug', 'Page Title', 'Menu Title', 'capability', 'menu_slug', 'my_submenu_page_callback' );
В этом примере мы создаем подраздел и указываем функцию my_submenu_page_callback() в качестве обратного вызова для вывода содержимого на странице подраздела. В данном случае, на странице будет выведен текст «This is the content of my submenu page.»
Установка прав доступа
add_submenu_page( 'parent_slug', 'Page Title', 'Menu Title', 'manage_options', 'menu_slug', 'callback_function' );
В этом примере мы устанавливаем требуемую возможность «manage_options» для отображения подраздела пользователю. Только пользователи с этой возможностью смогут видеть и получить доступ к подразделу.
Уникальный идентификатор подраздела
add_submenu_page( 'parent_slug', 'Page Title', 'Menu Title', 'capability', 'unique_menu_slug', 'callback_function' );
В данном примере мы используем уникальный slug «unique_menu_slug» для обращения к подразделу. Это важно, чтобы slug был уникальным для каждого подраздела, чтобы избежать конфликтов и неправильного обращения к странице.
Изменение порядка отображения подраздела
add_submenu_page( 'parent_slug', 'Page Title', 'Menu Title', 'capability', 'menu_slug', 'callback_function', 10 );
В этом примере мы устанавливаем порядок отображения подраздела в меню с помощью параметра «position». Значение 10 означает, что подраздел будет отображаться на 10-й позиции в порядке отображения меню. Если не указано значение, подраздел будет отображаться в конце списка меню.
Вопросы и ответы
Как создать подменю в административной панели WordPress?
Для создания подменю в административной панели WordPress используется функция add_submenu_page(). Она позволяет добавить новый пункт меню в существующее меню или создать новое меню.
Для создания подменю необходимо указать следующие параметры:
- $parent_slug — слаг родительского меню или имя файла стандартной страницы административной панели WordPress.
- $page_title — текст, который будет отображаться в заголовке страницы при выборе меню.
- $menu_title — текст, который будет использоваться для отображения пункта меню.
- $capability — требуемая возможность для отображения данного меню пользователю.
- $menu_slug — слаг, по которому можно будет обращаться к данному меню. Должен быть уникальным и содержать только строчные буквы, цифры, дефисы и подчеркивания.
- $callback (опционально) — функция, которая будет вызываться для вывода содержимого страницы. По умолчанию — пустая строка.
- $position (опционально) — позиция пункта меню в порядке отображения. По умолчанию — null.
Функция add_submenu_page() возвращает слаг созданной страницы или false, если у пользователя нет необходимых возможностей.
add_submenu_page( 'parent_slug', 'page_title', 'menu_title', 'capability', 'menu_slug', 'callback', 'position' );
Как изменить заголовок подменю в административной панели WordPress?
Для изменения заголовка подменю в административной панели WordPress необходимо обновить значение параметра $page_title при вызове функции add_submenu_page().
add_submenu_page( 'parent_slug', 'Новый заголовок', 'menu_title', 'capability', 'menu_slug', 'callback', 'position' );
Как изменить текст ссылки подменю в административной панели WordPress?
Для изменения текста ссылки подменю в административной панели WordPress необходимо обновить значение параметра $menu_title при вызове функции add_submenu_page().
add_submenu_page( 'parent_slug', 'page_title', 'Новый текст ссылки', 'capability', 'menu_slug', 'callback', 'position' );
Как изменить требуемую роль для отображения подменю в административной панели WordPress?
Для изменения требуемой роли для отображения подменю в административной панели WordPress необходимо использовать параметр $capability функции add_submenu_page(). Этот параметр определяет, какая роль должна быть у пользователя, чтобы увидеть данное подменю.
Пример кода:
add_submenu_page( 'parent_slug', 'Page Title', 'Menu Title', 'manage_options', 'menu_slug', 'callback_function' );
В данном примере, чтобы увидеть подменю, пользователь должен иметь роль с возможностью управления опциями (manage_options).
Как изменить уникальный идентификатор подменю в административной панели WordPress?
Уникальный идентификатор подменю в административной панели WordPress определяется параметром $menu_slug функции add_submenu_page(). Этот параметр должен быть уникальным для каждого подменю и содержать только строчные буквы, цифры, дефисы и подчеркивания.
Пример кода:
add_submenu_page( 'parent_slug', 'Page Title', 'Menu Title', 'manage_options', 'unique_menu_slug', 'callback_function' );
В данном примере, уникальный идентификатор подменю задан как 'unique_menu_slug'.
Как изменить функцию обратного вызова для вывода содержимого страницы подменю в административной панели WordPress?
Функция обратного вызова для вывода содержимого страницы подменю в административной панели WordPress определяется параметром $callback функции add_submenu_page(). Эта функция будет вызвана для отображения содержимого страницы подменю.
Пример кода:
add_submenu_page( 'parent_slug', 'Page Title', 'Menu Title', 'manage_options', 'menu_slug', 'custom_callback_function' );
function custom_callback_function() {
echo 'This is the content of the submenu page.';
}
В данном примере, функция custom_callback_function() будет вызвана для вывода содержимого страницы подменю.
Как изменить порядок отображения подменю в административной панели WordPress?
Для изменения порядка отображения подменю в административной панели WordPress необходимо использовать параметр $position функции add_submenu_page(). Этот параметр принимает значение типа int или float и определяет позицию подменю в списке меню.
add_submenu_page( 'parent_slug', 'page_title', 'menu_title', 'capability', 'menu_slug', 'callback', 10 );
В приведенном примере, значение 10 указывает на позицию подменю в списке меню. Чем меньше значение, тем выше будет отображаться подменю.
Как получить хук страницы подменю в административной панели WordPress?
Для получения хука страницы подменю в административной панели WordPress можно использовать функцию add_action(). Эта функция позволяет привязать определенную функцию к указанному хуку.
add_action( 'admin_menu', 'my_submenu_page' );
function my_submenu_page() {
add_submenu_page( 'parent_slug', 'page_title', 'menu_title', 'capability', 'menu_slug', 'callback' );
}
function callback() {
// Код для вывода содержимого страницы подменю
}
В приведенном примере, функция my_submenu_page() добавляет страницу подменю с указанными параметрами. Функция callback() содержит код для вывода содержимого страницы подменю.
Как проверить, имеет ли пользователь необходимые права для отображения подменю в административной панели WordPress?
Для проверки, имеет ли пользователь необходимые права для отображения подменю в административной панели WordPress, можно использовать функцию current_user_can(). Эта функция проверяет, имеет ли текущий пользователь указанную возможность.
add_submenu_page( 'parent_slug', 'page_title', 'menu_title', 'capability', 'menu_slug', 'callback' );
function callback() {
if ( ! current_user_can( 'capability' ) ) {
wp_die( __( 'You do not have sufficient permissions to access this page.' ) );
}
// Код для вывода содержимого страницы подменю
}
В приведенном примере, функция callback() проверяет, имеет ли текущий пользователь указанную возможность. Если пользователь не имеет необходимых прав, выводится сообщение об ошибке.
Функция
add_submenu_page()позволяет добавить подменю в административную панель WordPress. Используя параметры функции, можно изменить порядок отображения подменю, получить хук страницы подменю и проверить права пользователя для отображения подменю. Эта функция является полезным инструментом для разработчиков WordPress, позволяющим создавать пользовательские страницы подменю с необходимыми функциональными возможностями.
Связанные элементы
- Функция
add_menu_page(): добавляет новую страницу в административное меню. - Функция
remove_menu_page(): удаляет страницу из административного меню. - Функция
remove_submenu_page(): удаляет подстраницу из административного меню. - Функция
get_admin_page_title(): возвращает заголовок текущей страницы административного меню. - Хук
admin_menu: используется для добавления или удаления элементов из административного меню. - Хук
parent_file: используется для определения текущей страницы административного меню. - Класс
WP_Admin_Bar: представляет панель инструментов администратора WordPress. - Класс
WP_Screen: представляет текущий экран административной панели.