Одним из самым простым способом хранения данных в WP, является хранение данных в базе данных, в таблице опций - «wp_options». Обычно, в данную таблицу сохраняют данные плагинов или тем, не относящихся к каким либо мета значениям (постов, пользователей и таксономий).
Для взаимодействия с данной таблицей, движок вордпресс предоставляет ряд готовых функций и фильтров.
Рассмотрим небольшой пример работы:
$option_key = 'my_option_var'; echo "<b>get_option</b><br>"; $result = get_option($option_key); var_dump($result); echo "<hr>"; echo "<b>get_option + default value</b><br>"; $result = get_option($option_key, 'default_value'); var_dump($result); echo "<hr>"; echo "<b>add_option with string</b><br>"; $result = add_option($option_key, 'option_value', '', false); var_dump($result); echo "<hr>"; echo "<b>get_option</b><br>"; $result = get_option($option_key); var_dump($result); echo "<hr>"; echo "<b>update_option with array</b><br>"; $result = update_option($option_key, array( 1 => 'One', 'Two' => 3, 'Three' => 'Three', )); var_dump($result); echo "<hr>"; echo "<b>get_option</b><br>"; $result = get_option($option_key); var_dump($result); echo "<hr>"; echo "<b>delete_option</b><br>"; $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.
На этом все.