WordPress как на ладони

add_comment_meta()WP 2.9.0

Добавляет метаданные (произвольное поле) для указанного комментария.

Для добавления такого поля можно использовать update_comment_meta(). Часто она удобнее и работает универсально, обновляет поле или создает новое, если поля нет.

add_comment_meta() удобнее, когда используются несколько метаполей полей с одинаковыми названиями (ключами). Для этого у функции есть параметр $unique (уникальный), который по умолчанию равен false, т.е. по умолчанию создается не уникальный ключ - это значит, что полей с таким названием может быть несколько.

Работает на основе: add_metadata()

Хуков нет.

Возвращает

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

Примеры

0

#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.

0

#2 Еще примеры

Смотрите в описании add_post_meta(). add_comment_meta() работает точно также, только тут нужно указывать ID комментария, а там ID записи. В остальном все абсолютно одинаково.

Список изменений

С версии 2.9.0 Введена.

Код add_comment_meta() WP 6.0.2

function add_comment_meta( $comment_id, $meta_key, $meta_value, $unique = false ) {
	return add_metadata( 'comment', $comment_id, $meta_key, $meta_value, $unique );
}
3 комментария
    Войти