wp_insert_comment( array $commentdata )
Inserts a comment into the database.
Parameters
- $commentdata
-
(Required) Array of arguments for inserting a new comment.<br>
- 'comment_agent'
(string) The HTTP user agent of the$comment_author
when the comment was submitted. Default empty.<br> - 'comment_approved'
(int|string) Whether the comment has been approved. Default 1.<br> - 'comment_author'
(string) The name of the author of the comment. Default empty.<br> - 'comment_author_email'
(string) The email address of the$comment_author
. Default empty.<br> - 'comment_author_IP'
(string) The IP address of the$comment_author
. Default empty.<br> - 'comment_author_url'
(string) The URL address of the$comment_author
. Default empty.<br> - 'comment_content'
(string) The content of the comment. Default empty.<br> - 'comment_date'
(string) The date the comment was submitted. To set the date manually,$comment_date_gmt
must also be specified.<br> Default is the current time.<br> - 'comment_date_gmt'
(string) The date the comment was submitted in the GMT timezone.<br> Default is$comment_date
in the site's GMT timezone.<br> - 'comment_karma'
(int) The karma of the comment. Default 0.<br> - 'comment_parent'
(int) ID of this comment's parent, if any. Default 0.<br> - 'comment_post_ID'
(int) ID of the post that relates to the comment, if any.<br> Default 0.<br> - 'comment_type'
(string) Comment type. Default 'comment'.<br> - 'comment_meta'
(array) Optional. Array of key/value pairs to be stored in commentmeta for the new comment.<br> - 'user_id'
(int) ID of the user who submitted the comment. Default 0.<br>
- 'comment_agent'
Return
(int|false) The new comment's ID on success, false on failure.
Source
File: wp-includes/comment.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 WP-2.8.0
*
* @param int $id The comment ID.
* @param WP_Comment $comment Comment object.
*/
do_action( 'wp_insert_comment', $id, $comment );
return $id;
}
Changelog
Version | Description |
---|---|
5.5.0 | Default value for $comment_type argument changed to comment . |
4.4.0 | Introduced the $comment_meta argument. |
2.0.0 | Introduced. |