Произвольные данные комментариев в WordPress

К комментариям в WordPress можно добавлять добавлять произвольные поля для хранения различных данных. Для этого существует несколько функций, через которые можно добавлять, изменять и удалять такие данные. Перечислим их:
  • add_comment_meta - добавляет данные
  • get_comment_meta - возвращает данные из поля
  • update_comment_meta - обновляет данные в поле
  • delete_comment_meta - удаляет поле
Далее эти функции будут рассмотрены по порядку.

Добавить данные в поле - add_comment_meta

Функция добавления данных произвольного поля "add_comment_meta":
add_comment_meta( $comment_id, $key, $value, $unique );
Рассмотрим аргументы функции:
Название Тип данных Описание
$comment_id число ID комментария.
$key строка Название произвольного поля (латиницей).
$value строка Значение поля
$unique логический Ключ должен быть уникальным. По умолчанию: "false" - можно создать несколько полей с одинаковым ключом
Функция возвращает "ID" добавленного поля в случае успешного добавления поля, "WP_Error" в случае неверно заданного ID комментария "comment_id" и "false", если поле не удалось добавить. Перед добавлением функцией проверит поле с таким ключом на существование. Если оно уже есть, то добавления не произойдёт.

Примеры использования:
<?php
add_comment_meta(
   7, // id комментария
   'food', // название поля
   'cheese', // значение поля
   true // название поля должно быть уникальным
);

Получение данных из поля - get_comment_meta

Для получения значения поля можно использовать функцию "get_comment_meta". Если в поле содержится сериализованный массив (PHP функцией "serialize"), то он будет обработан функцией для распаковки данных - "unserialize". Функция возвращает либо объект, строку (даже если записывалось число), либо массив:
$val = get_comment_meta( $comment_id, $key, $single );
Название Тип данных Описание
$comment_id число ID комментария.
$key строка Название произвольного поля (латиницей).
$single логический В положении "false" (по умолчанию) вернёт массив из всех значений полей (используйте, если полей с таким ключом несколько). В положении "true" вернёт только одно первое полученное значение из поля, даже если полей с таким ключом несколько.
Примеры использования:
<?php
$food = get_comment_meta(
   7, // id комментария
   'food', // название поля
   true
);
echo $food; // распечатает "cheese"

Обновление значения поля - update_comment_meta

Для изменения значения поля используется функция "update_comment_meta". Перед внесением изменений эта функция проверяет поле на существование и добавляет его. Фактически её можно использовать вместо функции добавления данных "add_comment_meta".

Функция возвращает "false" в случае неудачи, "true" в случае успешного обновления поля, "WP_Error" в случае неудачи и ID нового поля, если оно было создано.

Как и в случае с "add_comment_meta" функция "update_comment_meta" проверяет является ли запись ревизией. И в случае таковой функция автоматически находит родительскую запись и изменяет значение поля именно у неё.

Рассмотрим аргументы этой функции:
update_comment_meta( $comment_id, $key, $value, $prev_value );
Название Тип данных Описание
$comment_id число ID комментария.
$key строка Название произвольного поля (латиницей).
$value строка/массив Значение поля. Если передать массив, то он будет сериализован PHP функцией "serialize".
$prev_value строка/массив Текущее значение поля, которое собираемся изменить. Нужно на случай, если есть несколько произвольных полей с одинаковым названием, чтобы изменить именно одно. Иначе будут изменены все значения полей с одинаковым названием.
Примеры использования:
<?php
update_comment_meta(
   7, // id комментария
   'food', // название поля
   'milk' // новое значение поля
);

Удаление поля - delete_comment_meta

Для удаления поля используйте функцию "delete_comment_meta". При успешном удалении вернётся "true", иначе "false":
delete_comment_meta( $comment_id, $key, $value );
Рассмотрим аргументы этой функции:
Название Тип данных Описание
$comment_id число ID комментария.
$key строка Название произвольного поля (латиницей), которое необходимо удалить.
$value строка Значение поля, которое нужно удалить. Используйте это на тот случай, если есть несколько произвольных полей с одинаковым названием, чтобы удалить именно одно. Иначе будут удалены все поля с одинаковым названием.
Примеры использования:
<?php
delete_comment_meta(
   7, // id комментария
   'food' // название поля
);
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, курсы создания сайтов, вебинары по созданию, курсы разработки сайтов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: