Функция add_theme_page()
в WordPress используется для добавления страницы настроек темы в административную панель WordPress. Это полезно, если вы хотите создать страницу, где пользователи могут настроить различные параметры вашей темы.
add_theme_page( string $page_title, string $menu_title, string $capability, string $menu_slug, callable $callback = ”, int $position = null ): string|false
Параметры
$page_title
(string): Заголовок страницы настроек темы. Это название будет отображаться в заголовке страницы настроек в административной панели WordPress.$menu_title
(string): Название пункта меню, который будет отображаться в боковой панели администратора WordPress.$capability
(string): Способность пользователя для доступа к странице настроек. Обычно этоedit_theme_options
, чтобы только пользователи с соответствующими правами могли видеть эту страницу.$menu_slug
(string): Уникальный идентификатор для страницы меню. Этот идентификатор используется для создания URL-адреса страницы настроек.$function
(callable): Функция, которая будет вызываться для вывода содержимого страницы настроек. Эта функция должна отображать HTML-контент страницы.
Пример использования
Предположим, вы хотите добавить страницу настроек темы для вашей темы WordPress. Вот пример, как это можно сделать.
В вашем файле functions.php
темы добавьте следующий код:
// Функция для создания страницы настроек темы
function my_theme_settings_page() {
?>
<div class="wrap">
<h1>Настройки моей темы</h1>
<form method="post" action="options.php">
<?php
// Вывод полей настроек
settings_fields('my_theme_options_group');
do_settings_sections('my_theme_settings');
submit_button();
?>
</form>
</div>
<?php
}
// Регистрация страницы настроек темы
function my_theme_add_admin_menu() {
add_theme_page(
'Настройки моей темы', // Заголовок страницы
'Настройки темы', // Название пункта меню
'edit_theme_options', // Права доступа
'my_theme_settings', // Уникальный идентификатор
'my_theme_settings_page' // Функция для вывода содержимого страницы
);
}
add_action('admin_menu', 'my_theme_add_admin_menu');
// Регистрация настроек
function my_theme_settings_init() {
register_setting('my_theme_options_group', 'my_theme_options');
add_settings_section(
'my_theme_settings_section',
'Основные настройки',
'my_theme_settings_section_callback',
'my_theme_settings'
);
add_settings_field(
'my_theme_text_field',
'Текстовое поле',
'my_theme_text_field_render',
'my_theme_settings',
'my_theme_settings_section'
);
}
add_action('admin_init', 'my_theme_settings_init');
function my_theme_text_field_render() {
$options = get_option('my_theme_options');
?>
<input type="text" name="my_theme_options[my_theme_text_field]" value="<?php echo isset($options['my_theme_text_field']) ? esc_attr($options['my_theme_text_field']) : ''; ?>">
<?php
}
function my_theme_settings_section_callback() {
echo 'Настройки вашей темы.';
}
Описание кода
- Функция
my_theme_settings_page()
выводит HTML-контент для страницы настроек. - Функция
my_theme_add_admin_menu()
добавляет страницу настроек в меню администратора. - Функция
my_theme_settings_init()
регистрирует настройки и добавляет разделы и поля настроек. - Функция
my_theme_text_field_render()
отвечает за вывод текстового поля на странице настроек. - Функция
my_theme_settings_section_callback()
отображает описание раздела настроек.
Этот пример создает простую страницу настроек для вашей темы, где вы можете добавить и настроить параметры темы. Вы можете расширить этот пример, добавляя больше полей настроек и функциональности в зависимости от потребностей вашей темы.
Заключение
Функция add_theme_page()
предоставляет удобный способ добавить страницу настроек для вашей темы в административной панели WordPress. С ее помощью вы можете легко создать интерфейс для настройки различных параметров вашей темы, обеспечивая пользователям удобный доступ к управлению настройками.