add_submenu_page()

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

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

Функция 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: представляет текущий экран административной панели.
Обсуждение