add_comment_meta()
Добавляет метаданные (произвольное поле) для указанного комментария.
Для добавления такого поля можно использовать update_comment_meta(). Часто она удобнее и работает универсально, обновляет поле или создает новое, если поля нет.
add_comment_meta() удобнее, когда используются несколько метаполей полей с одинаковыми названиями (ключами). Для этого у функции есть параметр $unique (уникальный), который по умолчанию равен false, т.е. по умолчанию создается не уникальный ключ - это значит, что полей с таким названием может быть несколько.
Хуков нет.
Возвращает
int|false
. Мета ID при успехе, false при неудаче.
Использование
add_comment_meta( $comment_id, $meta_key, $meta_value, $unique );
- $comment_id(число) (обязательный)
- ID комментария, к которому добавляется метаполе.
- $meta_key(строка) (обязательный)
- Название метаполя (ключ).
- $meta_value(смешанный) (обязательный)
- Значение метаполя.
- $unique(логический)
- Сделать это поле уникальным или нет? Если поставить true, то при добавлении WordPress сначала проверит, нет ли уже поля с таким же ключом, и если есть, то поле не будет добавлено.
По умолчанию: false
Примеры
#1 Добавим метаполе к каждому новому комментарию
Допустим нам нужно добавить метаполе к комментарию, когда он публикуется, т.е. к новому комменту. Используем для этого событие 'comment_post', которое срабатывает при публикации комментария.
add_action( 'comment_post', 'add_comment_metadata_field' ); function add_comment_metadata_field( $comment_id ) { $meta_val = sanitize_text_field( $_POST['my_metadata_value'] ); add_comment_meta( $comment_id, 'my_metadata_key', $meta_val ); }
Этот код нужно добавить в файл темы functions.php. А также, в форме комментария или в запроса нужно отправить POST данные my_metadata_value
, которые и будут добавлены в метаполе комментария my_metadata_key
.
#2 Еще примеры
Смотрите в описании add_post_meta(). add_comment_meta() работает точно также, только тут нужно указывать ID комментария, а там ID записи. В остальном все абсолютно одинаково.
Список изменений
С версии 2.9.0 | Введена. |
Код add_comment_meta() add comment meta WP 6.7.2
function add_comment_meta( $comment_id, $meta_key, $meta_value, $unique = false ) { return add_metadata( 'comment', $comment_id, $meta_key, $meta_value, $unique ); }