Вопрос или проблема
Я хочу сохранить значение входных данных и извлечь его.
Я новичок в создании плагинов WordPress и не знаю, как получить значение из формы. Я видел несколько учебников по разработке плагинов, но не могу правильно его разработать.
Вот мой код:
/*
Plugin Name: My Custorm Form
Plugin URI: https://abcd.com
Description: New plugin
Version: 0.1
Author: RB
*/
function my_plugin_settings()
{
add_menu_page( 'My Plugin',
'myCust Form',
'administrator',
'insert-my-plugin_bro',
'my_plugin_settings_page',
'dashicons-translation',
'60'
);
}
add_action('admin_menu', 'my_plugin_settings');
function my_plugin_options()
{
register_setting('my-form-group','user_input_name');
}
add_action('admin_init', 'my_plugin_options');
function my_plugin_settings_page()
{
echo "<h1>My Plugin Settings</h1>";
?>
<div class="wrap">
<form action="options.php" method="post">
<?php settings_fields('my-form-group'); ?>
<b>Enter a name to display:</b><br/>
<input type="text" name="default-image-url" value="" >
<?php submit_button(); ?>
</form>
</div>
<?php
}
?>
Вы почти закончили. Я изменил ваш код. Вы можете попробовать следующее:
<?php
add_action('admin_menu', 'my_plugin_create_menu');
function my_plugin_create_menu() {
//create new top-level menu
add_menu_page( 'My Plugin',
'myCust Form',
'administrator',
'insert-my-plugin_bro',
'my_plugin_settings_page',
'dashicons-translation',
'60'
);
//call register settings function
add_action( 'admin_init', 'register_my_plugin_settings' );
}
function register_my_plugin_settings() {
//register our settings
register_setting( 'my-plugin-settings-group', 'display_name' );
}
function my_plugin_settings_page() {
?>
<div class="wrap">
<h1>My Plugin Settings</h1>
<form method="post" action="options.php">
<?php settings_fields( 'my-plugin-settings-group' ); ?>
<?php do_settings_sections( 'my-plugin-settings-group' ); ?>
<table class="form-table">
<tr valign="top">
<th scope="row">Enter a name to display</th>
<td><input type="text" name="display_name" value="<?php echo esc_attr( get_option('display_name') ); ?>" /></td>
</tr>
</table>
<?php submit_button(); ?>
</form>
</div>
<?php } ?>
У WordPress также есть документация по этой теме. Это должно помочь вам.
Ответ или решение
Для того чтобы сохранять и извлекать данные из формы в вашем плагине WordPress, необходимо выполнить несколько шагов. Рассмотрим теоретическую основу, используя практический пример, и применим эти знания на практике.
Теоретическая основа
WordPress предоставляет функциональные возможности для создания страниц настроек и управления пользовательскими данными через API настроек. Задача состоит в создании страницы настроек плагина, где пользователь сможет вводить и сохранять данные. На практике это достигается с помощью функций add_menu_page
, register_setting
, и settings_fields
.
Пример
В вашем примере предусмотрено создание страницы настроек, где пользователь может ввести свое имя. Код уже охватывает основные элементы: создание страницы меню в админке, регистрация настроек и отображение полей ввода.
-
Создание страницы меню: Функция
add_menu_page
добавляет новую страницу в администраторскую панель WordPress. Она принимает такие параметры, как название страницы, права доступа и функция, которая отвечает за вывод содержимого страницы. -
Регистрация настроек: Функция
register_setting
регистрирует опции, которые будут сохраняться в базе данных WordPress. Это позволяет WordPress автоматически обрабатывать сохранение данных. -
Создание формы: Форма генерируется с помощью
settings_fields
иdo_settings_sections
, что позволяет WordPress заниматься генерацией неполадок в безопасности, таких как Nonce-факторы, автоматически.
Применение
На основе приведенных выше теоретических знаний и примера, приведем подробный код вашей задачи:
<?php
/*
Plugin Name: My Custom Form
Plugin URI: https://abcd.com
Description: New plugin
Version: 0.1
Author: RB
*/
add_action('admin_menu', 'my_plugin_create_menu');
function my_plugin_create_menu() {
add_menu_page('My Plugin', 'myCust Form', 'administrator', 'insert-my-plugin_bro', 'my_plugin_settings_page', 'dashicons-translation', '60');
add_action('admin_init', 'register_my_plugin_settings');
}
function register_my_plugin_settings() {
register_setting('my-plugin-settings-group', 'display_name');
}
function my_plugin_settings_page() {
?>
<div class="wrap">
<h1>Настройки моего плагина</h1>
<form method="post" action="options.php">
<?php settings_fields('my-plugin-settings-group'); ?>
<?php do_settings_sections('my-plugin-settings-group'); ?>
<table class="form-table">
<tr valign="top">
<th scope="row">Введите имя для отображения</th>
<td><input type="text" name="display_name" value="<?php echo esc_attr(get_option('display_name')); ?>" /></td>
</tr>
</table>
<?php submit_button(); ?>
</form>
</div>
<?php
}
?>
Заключение
Данный код создает рабочий плагин, который добавляет страницу настроек в администраторскую панель WordPress. Пользователь может вводить данные в форму, которые сохраняются в базе данных WordPress, используя API настроек. Вы также можете обратиться к документации WordPress для расширенного ознакомления с возможностями настроек и опций.