wp_insert_comment() WordPress Function
The wp_insert_comment() function is used to create new comments for a post. The function takes an array of arguments, which can include the comment author's name, email address, URL, and comment text. Comments are then stored in the database and displayed on the front-end of the site.
wp_insert_comment( array $commentdata ) #
Inserts a comment into the database.
Parameters
- $commentdata
(array)(Required)Array of arguments for inserting a new comment.
- 'comment_agent'
(string) The HTTP user agent of the$comment_author
when the comment was submitted. Default empty. - 'comment_approved'
(int|string) Whether the comment has been approved. Default 1. - 'comment_author'
(string) The name of the author of the comment. Default empty. - 'comment_author_email'
(string) The email address of the$comment_author
. Default empty. - 'comment_author_IP'
(string) The IP address of the$comment_author
. Default empty. - 'comment_author_url'
(string) The URL address of the$comment_author
. Default empty. - 'comment_content'
(string) The content of the comment. Default empty. - 'comment_date'
(string) The date the comment was submitted. To set the date manually,$comment_date_gmt
must also be specified. Default is the current time. - 'comment_date_gmt'
(string) The date the comment was submitted in the GMT timezone. Default is$comment_date
in the site's GMT timezone. - 'comment_karma'
(int) The karma of the comment. Default 0. - 'comment_parent'
(int) ID of this comment's parent, if any. Default 0. - 'comment_post_ID'
(int) ID of the post that relates to the comment, if any. Default 0. - 'comment_type'
(string) Comment type. Default 'comment'. - 'comment_meta'
(array) Optional. Array of key/value pairs to be stored in commentmeta for the new comment. - 'user_id'
(int) ID of the user who submitted the comment. Default 0.
- '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 = empty( $data['comment_type'] ) ? 'comment' : $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 ( 1 == $comment_approved ) { wp_update_comment_count( $comment_post_ID ); $data = array(); foreach ( array( 'server', 'gmt', 'blog' ) as $timezone ) { $data[] = "lastcommentmodified:$timezone"; } wp_cache_delete_multiple( $data, '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; }
Expand full source codeCollapse full source codeView on TracView on GitHub
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. |