Административная часть
Настройка административной части
Добавление функций
admin/class-my-plugin-admin.php
/**
* Регистрируем административное меню этого плагина в...
*/
public function add_plugin_admin_menu() {
/**
* Добавляем пункт меню плагина в "настройки".
*/
add_options_page( $this->plugin_name, $this->plugin_name, 'manage_options', $this->plugin_name, array($this, 'display_plugin_setup_page')
);
/**
* Добавляем пункт (страницу) верхнего уровня в меню админ-панели (боковая панель)
*/
add_menu_page("Система записи", "Система записи", "manage_options", $this->plugin_name, array($this, 'display_plugin_setup_page'), "dashicons-calendar-alt");
}
}
Регистрация функций
Файл includes/class-my-plugin.php
Функция define_admin_hooks()
$this->loader->add_action( 'admin_menu', $plugin_admin, 'add_plugin_admin_menu' );
Страница администрирования
admin/partials/my-plugin-admin-display.php
По сути страница настроек плагина - это простая форма, и тут можно использовать любые элементы форм. Например, текстовые поля позволят выводить телефоны или подписи пользователей. Чекбосксы, списки и кнопки, все может пойти в ход. Принцип обработки данных схож и не вызовет затруднений. Для того, что бы вы могли правильно оформить html код поля следует установить плагин WordPress Admin Style, он демонстрирует примеры как правильно оформить любой тип элемента формы, с учётом дальнейшей локализации.
<--Пример->
<form method="post" name="my_options" action="options.php">
<?php
// Загрузить все значения элементов формы
$options = get_option($this->plugin_name);
// текущие состояние опций
$footer_text = $options['footer_text'];
// Выводит скрытые поля формы на странице настроек
settings_fields( $this->plugin_name );
do_settings_sections( $this->plugin_name );
?>
<h2><?php echo esc_html( get_admin_page_title() ); ?></h2>
<fieldset>
<legend class="screen-reader-text"><span><?php _e('Text in the footer', $this->plugin_name);?></span></legend>
<label for="<?php echo $this->plugin_name;?>-footer_text">
<span><?php esc_attr_e('Text in the footer', $this->plugin_name);?></span>
</label>
<input type="text"
class="regular-text" id="<?php echo $this->plugin_name;?>-footer_text"
name="<?php echo $this->plugin_name;?>[footer_text]"
value="<?php if(!empty($footer_text)) esc_attr_e($footer_text, $this->plugin_name);?>"
placeholder="<?php esc_attr_e('Text in the footer', $this->plugin_name);?>"
/>
</fieldset>
<?php submit_button(__('Save all changes', $this->plugin_name), 'primary','submit', TRUE); ?>
</form>
Last updated
Was this helpful?