preprocess_commentхук-фильтрWP 1.5.0

Фильтрует данные комментария перед тем как они будут очищены и добавлены в базу данных. Фильтр срабатывает в самом начале функции, которая добавляет новый комментарий: wp_new_comment().

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

add_filter( 'preprocess_comment', 'wp_kama_preprocess_comment_filter' );

/**
 * Function for `preprocess_comment` filter-hook.
 * 
 * @param array $commentdata Comment data.
 *
 * @return array
 */
function wp_kama_preprocess_comment_filter( $commentdata ){

	// filter...
	return $commentdata;
}
$commentdata(массив)

Данные добавляемого комментария. Выглядят примерно так:

Array(
	[comment_post_ID]       => 4929
	[comment_author]        => Kama
	[comment_author_email]  => mail@mail.ru
	[comment_author_url]    =>
	[comment_content]       => Текст комментария
	[comment_type]          =>
	[comment_parent]        => 0
	[user_ID]               => 1
	[comment_author_IP]     => 123.123.123.123
	[comment_agent]         => Mozilla/5.0 (Windows NT 6.1; Win64; ...
)

Примеры

0

#1 Установим свой тип комментария

Предположим, у нас на сайте есть произвольный тип записей. И нам нужно, чтобы комментарии к этим записям также имели свой, нестандартный тип. Тип комменатрия указывается в поле comment_type таблицы wp_comments.

Этот пример показывает, как установить тип комментария 'for_book', когда комментарий оставляется для типа поста 'book':

// Устанавливаем тип комментария for_book при добавлении комментария
add_filter( 'preprocess_comment', 'set_for_book_comment_type' );
function set_for_book_comment_type( $commentdata ){
	$post = get_post( $commentdata['comment_post_ID'] );

	if( $post->post_type == 'book' )
		$commentdata['comment_type'] = 'for_book';

	return $commentdata;
}

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

С версии 1.5.0 Введена.
С версии 5.6.0 Comment data includes the comment_agent and comment_author_IP values.

Где вызывается хук

wp_new_comment()
preprocess_comment
wp-includes/comment.php 2244
$commentdata = apply_filters( 'preprocess_comment', $commentdata );

Где используется хук в WordPress

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