wp_new_comment()
Додає новий коментар до Бази Даних. Фільтрує дані.
Фільтрує всі дані, щоб переконатися, що всі поля передані правильно, деякі поля створюються функцією і їх не потрібно вказувати (IP адресс, User Agent).
Завдання функції попередньо опрацювати дані коментаря та передати їх wp_insert_comment() .
Також дивіться функцію wp_handle_comment_submission() , яка є обгорткою для цієї функції.
- Використовує хук-подію: comment_post , який передає ID коментаря та спрацьовує одразу після додавання коментаря.
- Використовує фільтр: preprocess_comment, завдяки якому можна змінити дані коментаря перед тим, як функція почне їх обробляти.
wp_insert_comment()
wp_handle_comment_submission()
Хуки з функції
Повертає
int|false|WP_Error
. ID коментаря, який було додано. Або false у разі невдачі.
Використання
wp_new_comment( $commentdata, $wp_error );
-
$commentdata
(масив) (обов’язковий) Асоціативний масив даних коментаря. Ключі масиву – поля таблиці в БД.
Поле
comment_ID
вказувати не потрібно – воно створюється автоматично. Інші поля дивіться в описі wp_insert_comment() .Аргумент
comment_approved
завжди дорівнює значенню функції wp_allow_comment() . Тобто. якщо ми вкажемо його вручну, то вказане значення буде проігноровано.Щоб не вказати значення
comment_approved
, можна скористатися фільтром: pre_comment_approved :add_filter( 'pre_comment_approved', fn()=> 1); // або add_filter( 'pre_comment_approved', fn()=> 0 );
-
$wp_error
(логічний) -
true = не виконувати
wp_die() , а повернути
WP_Error у разі помилки. C WP 4.7.
Типово: false
Приклади
#1 Приклад додавання нового коментаря
Коментар буде додано до посту 418 та буде відповіддю на коментар 315:
// створюємо масив даних нового коментаря $commentdata = [ 'comment_post_ID' => 418, 'comment_author' => 'Перевірка', 'comment_author_email' => '[email protected]', 'comment_author_url' => 'http://example.com', 'comment_content' => 'Текст нового коментаря', 'comment_type' => 'comment', 'comment_parent' => 315, 'user_ID' => 0, ]; // додаємо дані до Бази даних wp_new_comment( $commentdata );
#2 Приклад додавання коментаря за допомогою функціїwp_insert_comment()
У цьому випадку ми маємо самі визначити абсолютно всі поля коментаря:
$ data = [ 'comment_post_ID' => 1, 'comment_author' => 'admin', 'comment_author_email' => '[email protected]', 'comment_author_url' => 'http://', 'comment_content' => 'текст коменту', 'comment_type' => 'comment', 'comment_parent' => 0, 'user_id' => 1, 'comment_author_IP' => '127.0.0.1', 'comment_agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.10) Gecko/2009042316 Firefox/3.0.10 (.NET CLR 3.5.30729)', 'comment_date' => current_time('mysql'), 'comment_approved' => 1, ]; wp_insert_comment( $data );
нотатки
- Дивіться: wp_insert_comment()
- Global. wpdb. $wpdb WordPress database abstraction object.
список змін
З версії 1.5.0 | Введено. |
З версії 4.3.0 | Увімкнено comment_agent and comment_author_IP arguments . |
З версії 4.7.0 | $avoid_die parameter був added, дотримуючись функції до відновлення WP_Error object instead of dying. |
З версії 5.5.0 | $avoid_die parameter був renamed to $wp_error . |
З версії 5.5.0 | Завантажено argument_type argument. |