Задавайте питання щодо курсів WordPress

Зберігання даних у вордпрес

Завдання збереження даних варто щоразу коли потрібно щось програмувати, а при розробці плагінів це одне з перших завдань після створення інтерфейсної частини. але дані в WordPress можна зберігати по-різному. Я пропоную два варіанти.

  1. Збереження даних за допомогою функції add_option для опцій.
  2. Додавання даних до нової таблиці бази даних для зберігання великої кількості даних і тих, які можуть постійно змінюватися.

Розглянемо як правильно зберігати опції.

Розмістимо код у папку з плагінами у новий файл з ім'ям add-my-options.php.

<?php

/**
 * @package Package name
 * @version 1.0
 */
/*
Plugin Name: My plugin add-my-options
Plugin URI: https://wp-admin.com.ua
Description: спасибо сайту wp-admin.com.ua, он научит меня делать плагины )
Армстронг: Мій плагін.
Author: Name Author
Version: 1.0
Author URI: https://wp-admin.com.ua
*/

add_action('admin_menu', 'create_custom_panel');
функція create_custom_panel() {
    add_menu_page('Сторінка меню', "Додати дані", 'manage_options', 'Спеціальна панель', 'custom_panel');
}
функція custom_panel(){
	луна '<клас div="Обернути">
	<h2>Сохраняем опции плагина</h2>

	<метод форми="пост" дія="опції.php">
	'.wp_nonce_field('Опції оновлення').'

	<клас таблиці="форма-таблиця">

	<tr valign="верх">
	<ї сфера застосування="Рядок">Опция 1</ї>
	<тд><input type="text" ім'я="my_option_first" value="'.get_option('my_option_first').'" /></тд>
	</тр>
	 
	<tr valign="верх">
	<ї сфера застосування="Рядок">Опция 2</ї>
	<тд><input type="text" ім'я="my_option_second" value="'.get_option('my_option_second').'" /></тд>
	</тр>

	<tr valign="верх">
	<ї сфера застосування="Рядок">Опция 3</ї>
	<тд><input type="text" ім'я="my_option_third" value="'.get_option('my_option_third').'" /></тд>
	</тр>

	</стіл>

	<input type="hidden" ім'я="дія" value="update" />
	<input type="hidden" ім'я="page_options" value="my_option_first,my_option_second,my_option_third" />

	<клас р="submit">
	<input type="submit" клас="button-primary" value="Зберегти" />
	</стор>

	</форма>
	</див.>';
}
?>

Після розміщення коду активуйте плагін у панелі адміністратора і якщо все зробили правильно у вас з'явиться пункт Add data у меню адміністратора зліва.

Порядку розглянемо код написаного плагіна

функція wp_nonce_field(‘update-options’) додає два приховані поля, які дозволяють автоматично перевіряти права користувача на зміну налаштувань і перенаправляти його назад.

функція get_option() виводить збережені дані у поле введення. Ще одна ділянка коду, що знаходиться в кінці форми, відповідає за запис опцій з полів введення.

<input type="hidden" ім'я="дія" value="update" />
<input type="hidden" ім'я="page_options" value="my_option_first,my_option_second,my_option_third" />

«page_options» містить розділений комами список всіх налаштувань, які потрібно записати при збереженні.

На офіційному сайті WordPress знайшов ще один приклад зберігання даних. Мені здається, він буде більш правильним так як є явний поділ шаблону форми та коду. Код виглядає набагато чистіше. Описувати не буду з коду все зрозуміло, якщо не зрозуміло пишіть у коментарях, постараюся пояснити.

<?php
// create custom plugin settings menu
add_action('admin_menu', 'baw_create_menu');

function baw_create_menu() {

	//create new top-level menu
	add_menu_page('BAW Plugin Settings', 'BAW Settings', 'адміністратор', __ФАЙЛ__, 'baw_settings_page',plugins_url('/images/icon.png', __ФАЙЛ__));

	//call register settings function
	add_action( 'admin_init', 'register_mysettings' );
}


function register_mysettings() {
	//register our settings
	register_setting( 'baw-settings-group', 'new_option_name' );
	register_setting( 'baw-settings-group', 'some_other_option' );
	register_setting( 'baw-settings-group', 'option_etc' );
}

function baw_settings_page() {
?>
<клас div="Обернути">
<h2>Your Plugin Name</h2>

<метод форми="пост" дія="опції.php">
    <?php settings_fields( 'baw-settings-group' ); ?>
    <клас таблиці="форма-таблиця">
        <tr valign="верх">
        <ї сфера застосування="Рядок">New Option Name</ї>
        <тд><input type="text" ім'я="new_option_name" value="<?php echo get_option('new_option_name'); ?>" /></тд>
        </тр>
         
        <tr valign="верх">
        <ї сфера застосування="Рядок">Some Other Option</ї>
        <тд><input type="text" ім'я="some_other_option" value="<?php echo get_option('some_other_option'); ?>" /></тд>
        </тр>
        
        <tr valign="верх">
        <ї сфера застосування="Рядок">Параметри, Etc.</ї>
        <тд><input type="text" ім'я="option_etc" value="<?php echo get_option('option_etc'); ?>" /></тд>
        </тр>
    </стіл>
    
    <клас р="submit">
    <input type="submit" клас="button-primary" value="<?php _e('Save Changes') ?>" />
    </стор>

</форма>
</див.>
<?php } ?>

Перевірити останній приклад не встиг, але перший працює стабільно. Про роботу з базами даних постараюся описати у наступних випусках.

Успіхів у розробці плагінів!


Купить хостинг WordPress
/* Репетитор по wordpress
Послуги репетитора онлайн. Список курсів, які я веду
  • Базовий курс з веб-дизайну;
  • Верстка сайтів;
  • Загальний курс CMS WordPress та продовження курсу з розробки шаблонів;
  • Розробка сайтів на PHP.
Докладніше читайте на сторінці репетитор по WordPress
*/
Задавайте питання щодо курсів WordPress

Зберігання даних у вордпрес

Завдання збереження даних варто кожного разу, коли потрібно щось програмувати, а при розробці плагінів це одне з перших завдань після створення інтерфейсної частини. Але дані в WordPress можна зберігати по-різному. Я пропоную два варіанти.

  1. Збереження даних за допомогою функції add_option для опцій.
  2. Додавання даних до нової таблиці бази даних для зберігання великої кількості даних і тих, які можуть постійно змінюватися.

Розглянемо як правильно зберігати опції.

Розмістимо код у папку з плагінами у новий файл з ім’ям add-my-options.php.

<?php

/**
 * @package Package name
 * @version 1.0
 */
/*
Plugin Name: My plugin add-my-options
Plugin URI: https://wp-admin.com.ua
Description: спасибо сайту wp-admin.com.ua, он научит меня делать плагины )
Армстронг: Мій плагін.
Author: Name Author
Version: 1.0
Author URI: https://wp-admin.com.ua
*/

add_action('admin_menu', 'create_custom_panel');
функція create_custom_panel() {
    add_menu_page('Сторінка меню', "Додати дані", 'manage_options', 'Спеціальна панель', 'custom_panel');
}
функція custom_panel(){
	луна '<клас div="Обернути">
	<h2>Зберігаємо опції плагіна</h2>

	<метод форми="пост" дія="опції.php">
	'.wp_nonce_field('Опції оновлення').'

	<клас таблиці="форма-таблиця">

	<tr valign="верх">
	<ї сфера застосування="Рядок">Опція 1</ї>
	<тд><input type="text" ім'я="my_option_first" value="'.get_option('my_option_first').'" /></тд>
	</тр>
	 
	<tr valign="верх">
	<ї сфера застосування="Рядок">Опція 2</ї>
	<тд><input type="text" ім'я="my_option_second" value="'.get_option('my_option_second').'" /></тд>
	</тр>

	<tr valign="верх">
	<ї сфера застосування="Рядок">Опція 3</ї>
	<тд><input type="text" ім'я="my_option_third" value="'.get_option('my_option_third').'" /></тд>
	</тр>

	</стіл>

	<input type="hidden" ім'я="дія" value="update" />
	<input type="hidden" ім'я="page_options" value="my_option_first,my_option_second,my_option_third" />

	<клас р="submit">
	<input type="submit" клас="button-primary" value="Зберегти" />
	</стор>

	</форма>
	</див.>';
}
?>

Після розміщення коду активуйте плагін в панелі адміністратора і якщо все зробили правильно у вас з’явиться пункт Add data в меню адміністратора зліва.

По порядку розглянемо код написаного плагіна

Функція wp_nonce_field(‘update-options’) додає два приховані поля, які дозволяють автоматично перевіряти права користувача на зміну настройок та перенаправляти його назад.

Функція get_option() виводить збережені дані у поле введення. Ще одна ділянка коду, що знаходиться в кінці форми, відповідає за запис опцій з полів введення.

<input type="hidden" ім'я="дія" value="update" />
<input type="hidden" ім'я="page_options" value="my_option_first,my_option_second,my_option_third" />

«page_options» містить розділений комами список всіх налаштувань, які потрібно записати при збереженні.

На офіційному сайті WordPress виявив ще один приклад зберігання даних. Мені здається, він буде більш правильним так як є явний поділ шаблону форми та коду. Код виглядає набагато чистішим. Описувати не начебто з коду все зрозуміло, якщо не зрозуміло пишіть у коментарях, постараюся роз’яснити.

<?php
// create custom plugin settings menu
add_action('admin_menu', 'baw_create_menu');

function baw_create_menu() {

	//create new top-level menu
	add_menu_page('BAW Plugin Settings', 'BAW Settings', 'адміністратор', __ФАЙЛ__, 'baw_settings_page',plugins_url('/images/icon.png', __ФАЙЛ__));

	//call register settings function
	add_action( 'admin_init', 'register_mysettings' );
}


function register_mysettings() {
	//register our settings
	register_setting( 'baw-settings-group', 'new_option_name' );
	register_setting( 'baw-settings-group', 'some_other_option' );
	register_setting( 'baw-settings-group', 'option_etc' );
}

function baw_settings_page() {
?>
<клас div="Обернути">
<h2>Your Plugin Name</h2>

<метод форми="пост" дія="опції.php">
    <?php settings_fields( 'baw-settings-group' ); ?>
    <клас таблиці="форма-таблиця">
        <tr valign="верх">
        <ї сфера застосування="Рядок">New Option Name</ї>
        <тд><input type="text" ім'я="new_option_name" value="<?php echo get_option('new_option_name'); ?>" /></тд>
        </тр>
         
        <tr valign="верх">
        <ї сфера застосування="Рядок">Some Other Option</ї>
        <тд><input type="text" ім'я="some_other_option" value="<?php echo get_option('some_other_option'); ?>" /></тд>
        </тр>
        
        <tr valign="верх">
        <ї сфера застосування="Рядок">Параметри, Etc.</ї>
        <тд><input type="text" ім'я="option_etc" value="<?php echo get_option('option_etc'); ?>" /></тд>
        </тр>
    </стіл>
    
    <клас р="submit">
    <input type="submit" клас="button-primary" value="<?php _e('Save Changes') ?>" />
    </стор>

</форма>
</див.>
<?php } ?>

Перевірити останній приклад не встиг, але перший працює стабільно. Про роботу з базами даних намагатимуся описати у наступних випусках.

Успіхів у розробці плагінів!


Купить хостинг WordPress
Репетитор по wordpress
Послуги репетитора онлайн. Список курсів, які я веду
  • Базовий курс з веб-дизайну;
  • Верстка сайтів;
  • Загальний курс CMS WordPress та продовження курсу з розробки шаблонів;
  • Розробка сайтів на PHP.
Докладніше читайте на сторінці репетитор по WordPress
*/

Ніколаєнко Максим

Директор веб-студии ProGrafika. Займаюсь розробкою, дизайном та просуванням веб-сайтів. Завжди радий новим читачам блогу та добрим клієнтам.


Вам також може сподобатися...

1 Відповідь

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються дані ваших коментарів.

Шаблони для WordPress
Найкращий хостинг в Україні
Стабільний хостинг для Drupal