wp_insert_comment

Вставляет/добавляет комментарий в базу данных.

Хуки из функции:
wp_insert_comment
Возвращает

Число/false. ID нового комментария или false, если не удалось добавить комментарии.

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

wp_insert_comment( $commentdata );

$commentdata — это обязательный параметр который содержит массив данных добавляемого комментария.

Массив может содержать следующие поля:

comment_agent(строка)
HTTP агент (user agent) автора комментария, в момент отправки комменатрия.
По умолчанию: ”
comment_approved(число|строка)
Одобрен коммент или нет.
По умолчанию: 1
comment_author(строка)
Имя автора комментария.
По умолчанию: ”
comment_author_email(строка)
email автора комментария.
По умолчанию: ”
comment_author_IP(строка)
IP автора комментария. Автоматически НЕ определяется.
По умолчанию: ”
comment_author_url(строка)
URL автора комментария.
По умолчанию: ”
comment_content(строка)
Текст комментария.
По умолчанию: ”
comment_date(строка)
Дата и время отправки комментария. В MySQL формате.
По умолчанию: null (текущее время)
comment_date_gmt(строка)
Дата и время отправки комментария в GMT зоне. В MySQL формате.
По умолчанию: null (текущее время в GMT)
comment_karma(число)
Корма комментария.
По умолчанию: 0
comment_parent(число)
ID родительского комментария, которому этот комментарий будет дочерним.
По умолчанию: 0
comment_post_ID(число)
ID записи к которой относится комментраий.
По умолчанию: ”
comment_type(строка)
Тип комментария. Обычный комментарий не имеет типа, т.е. равен ”.
По умолчанию: ”
user_id(число)
ID пользователя которому будет принадлежать этот комментарий.
По умолчанию: 0
comment_meta(массив)
Массив из пар: ключ => значение которые будут добавлены в метаданные комментария.
По умолчанию: null

Примеры

#1 Пример добавления нового комментария

$data = array(
	'comment_post_ID'      => 1,
	'comment_author'       => 'admin',
	'comment_author_email' => 'admin@admin.com',
	'comment_author_url'   => 'http://',
	'comment_content'      => 'content here',
	'comment_type'         => '',
	'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'         => null, // получим current_time('mysql')
	'comment_approved'     => 1,
);

wp_insert_comment( $data );

Код из


wp-includes/comment.php

WP 4.7.2

<?php
function wp_insert_comment( $commentdata ) {
	global $wpdb;
	$data = wp_unslash( $commentdata );

	$comment_author       = ! isset( $data['comment_author'] )       ? '' : $data['comment_author'];
	$comment_author_email = ! isset( $data['comment_author_email'] ) ? '' : $data['comment_author_email'];
	$comment_author_url   = ! isset( $data['comment_author_url'] )   ? '' : $data['comment_author_url'];
	$comment_author_IP    = ! isset( $data['comment_author_IP'] )    ? '' : $data['comment_author_IP'];

	$comment_date     = ! isset( $data['comment_date'] )     ? current_time( 'mysql' )            : $data['comment_date'];
	$comment_date_gmt = ! isset( $data['comment_date_gmt'] ) ? get_gmt_from_date( $comment_date ) : $data['comment_date_gmt'];

	$comment_post_ID  = ! isset( $data['comment_post_ID'] )  ? 0  : $data['comment_post_ID'];
	$comment_content  = ! isset( $data['comment_content'] )  ? '' : $data['comment_content'];
	$comment_karma    = ! isset( $data['comment_karma'] )    ? 0  : $data['comment_karma'];
	$comment_approved = ! isset( $data['comment_approved'] ) ? 1  : $data['comment_approved'];
	$comment_agent    = ! isset( $data['comment_agent'] )    ? '' : $data['comment_agent'];
	$comment_type     = ! isset( $data['comment_type'] )     ? '' : $data['comment_type'];
	$comment_parent   = ! isset( $data['comment_parent'] )   ? 0  : $data['comment_parent'];

	$user_id  = ! isset( $data['user_id'] ) ? 0 : $data['user_id'];

	$compacted = compact( 'comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_author_IP', 'comment_date', 'comment_date_gmt', 'comment_content', 'comment_karma', 'comment_approved', 'comment_agent', 'comment_type', 'comment_parent', 'user_id' );
	if ( ! $wpdb->insert( $wpdb->comments, $compacted ) ) {
		return false;
	}

	$id = (int) $wpdb->insert_id;

	if ( $comment_approved == 1 ) {
		wp_update_comment_count( $comment_post_ID );

		foreach ( array( 'server', 'gmt', 'blog' ) as $timezone ) {
			wp_cache_delete( "lastcommentmodified:$timezone", 'timeinfo' );
		}
	}

	clean_comment_cache( $id );

	$comment = get_comment( $id );

	// If metadata is provided, store it.
	if ( isset( $commentdata['comment_meta'] ) && is_array( $commentdata['comment_meta'] ) ) {
		foreach ( $commentdata['comment_meta'] as $meta_key => $meta_value ) {
			add_comment_meta( $comment->comment_ID, $meta_key, $meta_value, true );
		}
	}

	/**
	 * Fires immediately after a comment is inserted into the database.
	 *
	 * @since 2.8.0
	 *
	 * @param int        $id      The comment ID.
	 * @param WP_Comment $comment Comment object.
	 */
	do_action( 'wp_insert_comment', $id, $comment );

	return $id;
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *