Функция wp_insert_comment()
предназначена для вставки нового комментария в базу данных WordPress. Она позволяет программно создавать комментарии с различными параметрами и мета-данными.
wp_insert_comment( array $commentdata ): int|false
Параметры
comment_agent
(string) — HTTP user agent автора комментария в момент отправки. По умолчанию пустая строка.comment_approved
(int|string) — Статус одобрения комментария. Значения могут быть ‘1’ (одобрен), ‘0’ (ожидает модерации), ‘spam’ (спам). По умолчанию ‘1’.comment_author
(string) — Имя автора комментария. По умолчанию пустая строка.comment_author_email
(string) — Email автора комментария. По умолчанию пустая строка.comment_author_IP
(string) — IP-адрес автора комментария. По умолчанию пустая строка.comment_author_url
(string) — URL-адрес автора комментария. По умолчанию пустая строка.comment_content
(string) — Содержание комментария. По умолчанию пустая строка.comment_date
(string) — Дата и время отправки комментария в формате MySQL. По умолчанию текущее время.comment_date_gmt
(string) — Дата и время отправки комментария в GMT формате. По умолчанию текущее время в GMT.comment_karma
(int) — Карма комментария. По умолчанию 0.comment_parent
(int) — ID родительского комментария, если этот комментарий является ответом. По умолчанию 0.comment_post_ID
(int) — ID поста, к которому относится комментарий. Это обязательный параметр.comment_type
(string) — Тип комментария. По умолчанию ‘comment’. Может быть пустой строкой для обычного комментария.comment_meta
(array) — Массив дополнительных мета-данных для комментария. По умолчанию пустой.user_id
(int) — ID пользователя, который публикует комментарий. По умолчанию 0.
Возвращаемое значение
Функция возвращает ID нового комментария при успешном добавлении или false
в случае ошибки.
Важные замечания
- Функция ожидает экранированные данные. Если данные не получены из $_POST запроса, их следует обработать с помощью
wp_slash()
. - Смотрите также функцию
wp_new_comment()
, которая очищает данные перед вызовомwp_insert_comment()
.
Пример 1: Добавление нового комментария
$data = array(
'comment_post_ID' => 1, // ID поста
'comment_author' => 'admin',
'comment_author_email' => '[email protected]',
'comment_author_url' => 'http://example.com',
'comment_content' => 'Это пример комментария.',
'comment_type' => 'comment',
'comment_parent' => 0,
'user_id' => 1,
'comment_author_IP' => '127.0.0.1',
'comment_agent' => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36',
'comment_date' => null, // По умолчанию текущее время
'comment_approved' => 1
);
$comment_id = wp_insert_comment( wp_slash($data) );
if ( $comment_id ) {
echo 'Комментарий успешно добавлен. ID: ' . $comment_id;
} else {
echo 'Не удалось добавить комментарий.';
}
Пример 2: Добавление ответа на комментарий
$data = array(
'comment_post_ID' => 1, // ID поста
'comment_author' => 'admin',
'comment_author_email' => '[email protected]',
'comment_content' => 'Это ответ на предыдущий комментарий.',
'comment_approved' => 1,
'comment_parent' => 100 // ID родительского комментария
);
$comment_id = wp_insert_comment( wp_slash($data) );
if ( $comment_id ) {
echo 'Ответ успешно добавлен. ID: ' . $comment_id;
} else {
echo 'Не удалось добавить ответ.';
}
Пример 3: Добавление комментария с мета-данными
$data = array(
'comment_post_ID' => 1, // ID поста
'comment_author' => 'admin',
'comment_author_email' => '[email protected]',
'comment_content' => 'Комментарий с мета-данными.',
'comment_approved' => 1,
'comment_meta' => array(
'property_district' => 'Downtown',
'property_estate' => 'Luxury',
'custom_tag' => 'featured'
)
);
$comment_id = wp_insert_comment( wp_slash($data) );
if ( ! is_wp_error( $comment_id ) ) {
// Добавляем мета-данные
foreach ( $data['comment_meta'] as $key => $value ) {
add_comment_meta( $comment_id, $key, $value );
}
echo 'Комментарий и мета-данные успешно добавлены. ID: ' . $comment_id;
} else {
echo 'Ошибка при добавлении комментария: ' . $comment_id->get_error_message();
}
Заключение
Функция wp_insert_comment()
предоставляет мощные возможности для программного управления комментариями в WordPress. Правильное использование этой функции позволяет вам добавлять комментарии с необходимыми параметрами и мета-данными, обеспечивая гибкость и контроль над комментариями на вашем сайте.