wp_insert_comment()

Вставляет комментарий в базу данных
Функция WordPress
INT 4.4.0, 2.0.0
WordPress Icon
Содержание
  1. Описание функции
  2. Примеры использования
  3. Вставка комментария с указанием имени автора
  4. Создание комментария с указанием даты и времени
  5. Добавление комментария с указанием IP-адреса автора
  6. Сохранение комментария с указанием URL-адреса автора
  7. Установка типа комментария и его родительского комментария
  8. Вопросы и ответы
  9. Как добавить комментарий в базу данных?
  10. Как получить ID нового комментария после успешного добавления?
  11. Как указать автора комментария?
  12. Как указать email автора комментария?
  13. Как указать IP адрес автора комментария?
  14. Как указать URL адрес автора комментария?
  15. Как указать содержимое комментария?
  16. Как указать дату и время комментария?
  17. Как указать родительский комментарий?
  18. Как указать тип комментария?
  19. Как указать карму комментария?
  20. Как указать ID поста, к которому относится комментарий?
  21. Как указать метаданные комментария?
  22. Как указать ID пользователя, который отправил комментарий?
  23. Связанные элементы

Описание функции

Функция wp_insert_comment() используется для вставки нового комментария в базу данных WordPress.

Когда пользователь отправляет комментарий на сайте, данные комментария передаются в функцию wp_insert_comment(), которая добавляет комментарий в таблицу wp_comments базы данных.

Функция также может использоваться для добавления комментариев вручную, например, при импорте комментариев из другой платформы или при создании тестовых данных.

Использование

wp_insert_comment( array $commentdata ): int|false;

Функция wp_insert_comment() принимает один обязательный параметр — массив $commentdata, содержащий аргументы для вставки нового комментария.

Она возвращает ID нового комментария в случае успеха или false в случае ошибки.

  • $commentdata (обязательный): Массив аргументов для вставки нового комментария.
  • comment_agent: HTTP-агент пользователя $comment_author при отправке комментария. По умолчанию пусто.
  • comment_approved: Одобрен ли комментарий. По умолчанию 1.
  • comment_author: Имя автора комментария. По умолчанию пусто.
  • comment_author_email: Email автора комментария. По умолчанию пусто.
  • comment_author_IP: IP-адрес автора комментария. По умолчанию пусто.
  • comment_author_url: URL-адрес автора комментария. По умолчанию пусто.
  • comment_content: Содержимое комментария. По умолчанию пусто.
  • comment_date: Дата отправки комментария. Для установки даты вручную также необходимо указать $comment_date_gmt. По умолчанию — текущее время.
  • comment_date_gmt: Дата отправки комментария в часовом поясе GMT. По умолчанию — $comment_date в часовом поясе сайта.
  • comment_karma: Карма комментария. По умолчанию 0.
  • comment_parent: ID родительского комментария, если есть. По умолчанию 0.
  • comment_post_ID: ID записи, к которой относится комментарий, если есть. По умолчанию 0.
  • comment_type: Тип комментария. По умолчанию ‘comment’.
  • comment_meta: Дополнительные метаданные комментария в виде массива ключей и значений. Необязательно.
  • user_id: ID пользователя, отправившего комментарий. По умолчанию 0.

Функция возвращает ID нового комментария в случае успеха или false в случае ошибки.

<?php
// Создание массива с данными комментария
$commentdata = array(
    'comment_agent'         => '',
    'comment_approved'     => 1,
    'comment_author'       => 'John Doe',
    'comment_author_email' => 'john.doe@example.com',
    'comment_author_IP'    => '192.168.0.1',
    'comment_author_url'   => 'http://example.com',
    'comment_content'      => 'This is a test comment.',
    'comment_date'         => '2022-01-01 12:00:00',
    'comment_date_gmt'     => '2022-01-01 12:00:00',
    'comment_karma'        => 0,
    'comment_parent'       => 0,
    'comment_post_ID'      => 123,
    'comment_type'         => 'comment',
    'comment_meta'         => array(
        'key1' => 'value1',
        'key2' => 'value2'
    ),
    'user_id'              => 0
);
// Вставка комментария в базу данных
$comment_id = wp_insert_comment( $commentdata );
if ( $comment_id ) {
    echo 'Комментарий успешно добавлен. ID комментария: ' . $comment_id;
} else {
    echo 'Ошибка при добавлении комментария.';
}
?>

Примеры использования

Вставка комментария с указанием имени автора


$commentdata = array(
    'comment_author' => 'John Doe',
    'comment_content' => 'This is a test comment',
);
$comment_id = wp_insert_comment( $commentdata );

В данном примере кода мы создаем новый комментарий с указанием имени автора «John Doe» и содержимым «This is a test comment». Функция wp_insert_comment() возвращает ID нового комментария, который мы сохраняем в переменной $comment_id.

Создание комментария с указанием даты и времени


$commentdata = array(
    'comment_author' => 'Jane Smith',
    'comment_content' => 'This is another test comment',
    'comment_date' => '2022-01-01 12:00:00',
);
$comment_id = wp_insert_comment( $commentdata );

В этом примере мы создаем комментарий от автора «Jane Smith» с содержимым «This is another test comment» и указываем дату и время комментария как «2022-01-01 12:00:00». Функция wp_insert_comment() сохраняет комментарий с указанной датой и временем.

Добавление комментария с указанием IP-адреса автора


$commentdata = array(
    'comment_author' => 'Mike Johnson',
    'comment_content' => 'This is a comment with an IP address',
    'comment_author_IP' => '192.168.0.1',
);
$comment_id = wp_insert_comment( $commentdata );

В этом примере мы создаем комментарий от автора «Mike Johnson» с содержимым «This is a comment with an IP address» и указываем IP-адрес автора как «192.168.0.1». Функция wp_insert_comment() сохраняет комментарий с указанным IP-адресом.

Сохранение комментария с указанием URL-адреса автора


$commentdata = array(
    'comment_author' => 'Sarah Brown',
    'comment_content' => 'This is a comment with a URL',
    'comment_author_url' => 'https://example.com',
);
$comment_id = wp_insert_comment( $commentdata );

В данном примере мы создаем комментарий от автора «Sarah Brown» с содержимым «This is a comment with a URL» и указываем URL-адрес автора как «https://example.com». Функция wp_insert_comment() сохраняет комментарий с указанным URL-адресом.

Установка типа комментария и его родительского комментария


$commentdata = array(
    'comment_author' => 'Alex Wilson',
    'comment_content' => 'This is a reply to a comment',
    'comment_type' => 'comment_reply',
    'comment_parent' => 123,
);
$comment_id = wp_insert_comment( $commentdata );

В этом примере мы создаем ответ на комментарий от автора «Alex Wilson» с содержимым «This is a reply to a comment». Мы также указываем тип комментария как «comment_reply» и родительский комментарий с ID 123. Функция wp_insert_comment() сохраняет ответ на комментарий с указанными параметрами.

Вопросы и ответы

Как добавить комментарий в базу данных?

Для добавления комментария в базу данных в WordPress используется функция wp_insert_comment(). Она принимает массив аргументов $commentdata, в котором указываются необходимые данные для создания комментария.

Пример использования функции wp_insert_comment():


$commentdata = array(
    'comment_agent' => '', // HTTP user agent комментатора
    'comment_approved' => 1, // Флаг одобрения комментария
    'comment_author' => 'John Doe', // Имя автора комментария
    'comment_author_email' => 'john.doe@example.com', // Email автора комментария
    'comment_author_IP' => '127.0.0.1', // IP адрес автора комментария
    'comment_author_url' => 'http://example.com', // URL автора комментария
    'comment_content' => 'This is a comment.', // Содержимое комментария
    'comment_date' => current_time('mysql'), // Дата комментария
    'comment_date_gmt' => current_time('mysql', 1), // Дата комментария в GMT
    'comment_karma' => 0, // Карма комментария
    'comment_parent' => 0, // ID родительского комментария
    'comment_post_ID' => 0, // ID поста, к которому относится комментарий
    'comment_type' => 'comment', // Тип комментария
    'comment_meta' => array(), // Дополнительные метаданные комментария
    'user_id' => 0 // ID пользователя, который отправил комментарий
);
$new_comment_id = wp_insert_comment($commentdata);

Как получить ID нового комментария после успешного добавления?

Функция wp_insert_comment() возвращает ID нового комментария после успешного добавления. Если добавление комментария не удалось, функция вернет false.

Пример получения ID нового комментария:


$new_comment_id = wp_insert_comment($commentdata);
if ($new_comment_id) {
    echo 'New comment ID: ' . $new_comment_id;
} else {
    echo 'Failed to insert comment.';
}

Как указать автора комментария?

Автора комментария можно указать в аргументе comment_author при вызове функции wp_insert_comment(). Значение этого аргумента должно быть строкой, содержащей имя автора комментария.

Пример указания автора комментария:


$commentdata = array(
    'comment_author' => 'John Doe', // Имя автора комментария
    // Остальные аргументы комментария...
);
$new_comment_id = wp_insert_comment($commentdata);

Как указать email автора комментария?

Email автора комментария можно указать в аргументе comment_author_email при вызове функции wp_insert_comment(). Значение этого аргумента должно быть строкой, содержащей email автора комментария.

Пример указания email автора комментария:


$commentdata = array(
    'comment_author_email' => 'john.doe@example.com', // Email автора комментария
    // Остальные аргументы комментария...
);
$new_comment_id = wp_insert_comment($commentdata);

Как указать IP адрес автора комментария?

Для указания IP адреса автора комментария в функции wp_insert_comment() необходимо передать значение в параметр comment_author_IP. Значение должно быть строкой, содержащей IP адрес автора комментария.


$commentdata = array(
    'comment_author_IP' => '192.168.0.1',
);
wp_insert_comment( $commentdata );

Как указать URL адрес автора комментария?

Для указания URL адреса автора комментария в функции wp_insert_comment() необходимо передать значение в параметр comment_author_url. Значение должно быть строкой, содержащей URL адрес автора комментария.


$commentdata = array(
    'comment_author_url' => 'https://example.com',
);
wp_insert_comment( $commentdata );

Как указать содержимое комментария?

Для указания содержимого комментария в функции wp_insert_comment() необходимо передать значение в параметр comment_content. Значение должно быть строкой, содержащей текст комментария.


$commentdata = array(
    'comment_content' => 'This is a comment.',
);
wp_insert_comment( $commentdata );

Как указать дату и время комментария?

Для указания даты и времени комментария в функции wp_insert_comment() необходимо передать значения в параметры comment_date и comment_date_gmt. Значения должны быть строками, содержащими дату и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС.


$commentdata = array(
    'comment_date' => '2022-01-01 12:00:00',
    'comment_date_gmt' => '2022-01-01 12:00:00',
);
wp_insert_comment( $commentdata );

Как указать родительский комментарий?

Для указания родительского комментария используется параметр comment_parent. Значение этого параметра должно быть ID родительского комментария. Если комментарий не имеет родительского комментария, то значение параметра должно быть 0.


$commentdata = array(
    'comment_parent' => 123 // ID родительского комментария
);
wp_insert_comment( $commentdata );

Как указать тип комментария?

Для указания типа комментария используется параметр comment_type. Значение этого параметра должно быть строкой, например, ‘comment’, ‘pingback’, ‘trackback’ и т.д. По умолчанию, тип комментария равен ‘comment’.


$commentdata = array(
    'comment_type' => 'pingback' // Тип комментария
);
wp_insert_comment( $commentdata );

Как указать карму комментария?

Для указания кармы комментария используется параметр comment_karma. Значение этого параметра должно быть целым числом. По умолчанию, карма комментария равна 0.


$commentdata = array(
    'comment_karma' => 10 // Карма комментария
);
wp_insert_comment( $commentdata );

Как указать ID поста, к которому относится комментарий?

Для указания ID поста, к которому относится комментарий, используется параметр comment_post_ID. Значение этого параметра должно быть ID поста. Если комментарий не относится к какому-либо посту, то значение параметра должно быть 0.


$commentdata = array(
    'comment_post_ID' => 456 // ID поста
);
wp_insert_comment( $commentdata );

Как указать метаданные комментария?

Для указания метаданных комментария используется параметр comment_meta. Значение этого параметра должно быть массивом с парами ключ-значение. Метаданные комментария могут быть использованы для хранения дополнительной информации о комментарии.


$commentdata = array(
    'comment_meta' => array(
        'key1' => 'value1', // Метаданные комментария
        'key2' => 'value2'
    )
);
wp_insert_comment( $commentdata );

Как указать ID пользователя, который отправил комментарий?

Для указания ID пользователя, который отправил комментарий, используется параметр user_id. Значение этого параметра должно быть ID пользователя. Если комментарий был отправлен анонимным пользователем, то значение параметра должно быть 0.


$commentdata = array(
    'user_id' => 789 // ID пользователя
);
wp_insert_comment( $commentdata );

Функция wp_insert_comment() используется для вставки комментария в базу данных WordPress. Она принимает массив с аргументами для создания нового комментария и возвращает ID нового комментария в случае успеха или false в случае ошибки. С помощью различных параметров можно указать родительский комментарий, тип комментария, карму комментария, ID поста, метаданные комментария и ID пользователя, который отправил комментарий.

Связанные элементы

  • Функция wp_new_comment(): создает новый комментарий и возвращает его ID.
  • Функция wp_update_comment(): обновляет существующий комментарий.
  • Функция wp_delete_comment(): удаляет комментарий из базы данных.
  • Функция wp_set_comment_status(): устанавливает статус комментария (одобрен, ожидает модерации и т. д.).
  • Функция wp_get_comment_status(): возвращает текущий статус комментария.
  • Функция wp_allow_comment(): проверяет, разрешено ли оставлять комментарии для данного типа записи.
  • Хук preprocess_comment: вызывается перед обработкой нового комментария.
  • Хук comment_post: вызывается после успешного добавления комментария в базу данных.
Обсуждение