add_option
add_option()
add_option($option, $value = ‘ ‘, $deprecated = ‘ ‘, $autoload = ‘yes’)
Добавляет новый параметр в таблицу options
Значение параметра не нужно сериализовать. Если значение должно быть сериализовано, то оно будет сериализлвано автоматически. Параметр можно добавить без значения.
Параметры:
- $option – название параметра
- $value – необязательны, значение параметра, должен быть сериализуемым
- $deprecated – необязательный, описание (больше не используется)
- $autoload – необязательный, если стоит «yes», то WordPress будет загружать данный парметр автоматически. По умолчанию стоит «yes»
Возвращает false, если параметр не добавлен и true, если параметр добавлен.
Хуки: add_option, add_option_{$option}, added_option
Похожие:
- add_network_option()
- add_site_option()
- get_option()
- get_network_option()
- get_site_option()
- update_option()
- update_network_option()
- update_site_option()
- delete_option()
- delete_network_option()
- delete_site_option()
Файл: wp-include/option.php
Пример:
Мы хотим реализовать простую статистику просмотра страниц. Для этого открываем файл темы WordPress page.php, который отвечает за отображение страницы. И в код где происходит отображение самого контента страницы. В моем случае:
<?php while (have_posts()) : the_post(); ?> <article> <a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><h1><?php the_title(); ?></h1></a> <?php the_content(false); ?> <div class="clearfix"></div> <?php $id = get_the_ID(); if(!add_option($id,'1')){ $num = get_option($id); update_option($id,$num+1); } ?> </article> <?php endwhile ?>
В конец цикла while вставляем код для подсчета просмотра страницы. Вот, что получилось:
<?php while (have_posts()) : the_post(); ?> <article> <a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><h1><?php the_title(); ?></h1></a> <?php the_content(false); ?> <div class="clearfix"></div> <?php $id = get_the_ID(); if(!add_option($id,'1')){ $num = get_option($id); update_option($id,$num+1); } ?> </article> <?php endwhile ?>
Тут мы используем функцию get_the_ID() для получения ID текущей страницы. И присваиваем это значение переменной $id. Для чего это сделано? В нашем коде нам несколько раз понадобиться ID страницы и для того, чтобы не вызывать одну и ту же функцию несколько раз. Этот момент позволяет нам ускорить работу нашего кода (хотя в нашем случае это ускорение не существенно).
Дальше используем условие если параметр ID поста со значением 1 записываем в таблицу options, при помощи функции add_option(). Которая вернет true, если параметр записан или false, если параметр не записан. Если параметр не записан, то мы получаем значение данного параметра при помощи функции get_option() и дальше обновляем наша параметр при помощи функции update_option().
Проверим. Откроем в phpmyadmin таблицу options. В моем случае сейчас там 224 записи
Теперь откроем какую-нибудь страницу нашего блога:
Для отображения страницы ничего не изменилось. Теперь опять зайдем в таблицу options через phpmyadmin.
Добавилась запись. Давайте посмотрим.
Отлично, теперь давайте обновим страницу нашего блога. И посмотри, что произошло с нашей записью.
Все работает.
Теперь написать небольшой плагин для отображения просмотренных страниц в админке, и можно вести статистику. Но это тема уже другой статьи.
Небольшое видео в качестве примера: