Одним з найпростіших способів зберігання даних у WP є збереження даних у базі даних, у таблиці опцій — «wp_options». Зазвичай у цю таблицю зберігають дані плагінів або тем, які не належать до жодних мета-значень (постів, користувачів чи таксономій).
Для взаємодії з цією таблицею, рушій WordPress надає низку готових функцій та фільтрів.
Розглянемо невеликий приклад роботи:
$option_key = 'my_option_var'; echo "<b>get_option</b>"; $result = get_option($option_key); var_dump($result); echo "<hr>"; echo "<b>get_option + default value</b>"; $result = get_option($option_key, 'default_value'); var_dump($result); echo "<hr>"; echo "<b>add_option with string</b>"; $result = add_option($option_key, 'option_value', '', false); var_dump($result); echo "<hr>"; echo "<b>get_option</b>"; $result = get_option($option_key); var_dump($result); echo "<hr>"; echo "<b>update_option with array</b>"; $result = update_option($option_key, array( 1 => 'One', 'Two' => 3, 'Three' => 'Three', )); var_dump($result); echo "<hr>"; echo "<b>get_option</b>"; $result = get_option($option_key); var_dump($result); echo "<hr>"; echo "<b>delete_option</b> "; $result = delete_option($option_key); var_dump($result); echo "<hr>"; die;
У цій частині коду:
$option_key = 'my_option_var'; echo "<b>get_option</b>"; $result = get_option($option_key); var_dump($result); echo "<hr>";
ми намагаємося отримати опцію з назвою «my_option_var». І якщо значення було раніше встановлено, ми його отримаємо. Інакше функція поверне значення false.
Також ми можемо задати значення за замовчуванням:
echo "<b>get_option + default value</b>"; $result = get_option($option_key, 'default_value'); var_dump($result); echo "<hr>";
і воно буде повернуто функцією в тому випадку, якщо в БД не буде потрібного нам запису.
Встановити значення ми можемо наступним чином:
echo "<b>add_option with string</b>"; $result = add_option($option_key, 'option_value', '', 'yes'); var_dump($result); echo "<hr>";
де:
$option_key — назва опції
option_value — вміст опції
третій, порожній параметр — більше не використовується
'yes' — параметр, що визначає, чи буде опція завантажена одразу після завантаження сайту, або ж чекатиме ручного виклику. Інший можливий варіант — «no». Також можна використовувати true/false
Також, WP дозволяє зберігати в цій змінній і масиви:
echo "<b>update_option with array</b>"; $result = update_option($option_key, array( 1 => 'One', 'Two' => 3, 'Three' => 'Three', ));
попередньо серіалізувавши їх. При отриманні масивів з БД, розсеріалізація рядка у масив відбувається автоматично.
Видалити опцію можна за допомогою функції «delete_option»:
echo "<b>delete_option</b>"; $result = delete_option($option_key); var_dump($result); echo "<hr>";
у разі успішного видалення буде повернено true.
На цьому все.
