wp_new_comment()
wp_new_comment( array $commentdata, bool $avoid_die = f…
wp_new_comment( array $commentdata, bool $avoid_die = false )
向数据库添加新注释。
Adds a new comment to the database.
目录锚点:#说明#源码#笔记
说明(Description)
过滤新的注释,以确保在将注释插入数据库之前,字段已被清理并有效。使用评论ID和评论是否被WordPress批准来调用“comment_post”操作。还有“preprocess_comment”过滤器,用于在函数处理注释数据之前对其进行处理。我们在这里直接使用远程地址。如果您在代理后面,您应该确保它设置正确,例如在wp中-配置.php,为您的环境。看到了吗https://core.trac.wordpress.org/ticket/9235另请参阅wp_insert_comment()
源码(Source)
/** * Adds a new comment to the database. * * Filters new comment to ensure that the fields are sanitized and valid before * inserting comment into database. Calls 'comment_post' action with comment ID * and whether comment is approved by WordPress. Also has 'preprocess_comment' * filter for processing the comment data before the function handles it. * * We use REMOTE_ADDR here directly. If you are behind a proxy, you should ensure * that it is properly set, such as in wp-config.php, for your environment. * See {@link https://core.trac.wordpress.org/ticket/9235} * * @since 1.5.0 * @since 4.3.0 'comment_agent' and 'comment_author_IP' can be set via `$commentdata`. * * @see wp_insert_comment() * * @global wpdb $wpdb * * @param array $commentdata Contains information on the comment. See wp_insert_comment() * for information on accepted arguments. * @return int|false The ID of the comment on success, false on failure. */ function wp_new_comment( $commentdata ) { global $wpdb; if ( isset( $commentdata['user_ID'] ) ) { $commentdata['user_id'] = $commentdata['user_ID'] = (int) $commentdata['user_ID']; } $prefiltered_user_id = ( isset( $commentdata['user_id'] ) ) ? (int) $commentdata['user_id'] : 0; /** * Filter a comment's data before it is sanitized and inserted into the database. * * @since 1.5.0 * * @param array $commentdata Comment data. */ $commentdata = apply_filters( 'preprocess_comment', $commentdata ); $commentdata['comment_post_ID'] = (int) $commentdata['comment_post_ID']; if ( isset( $commentdata['user_ID'] ) && $prefiltered_user_id !== (int) $commentdata['user_ID'] ) { $commentdata['user_id'] = $commentdata['user_ID'] = (int) $commentdata['user_ID']; } elseif ( isset( $commentdata['user_id'] ) ) { $commentdata['user_id'] = (int) $commentdata['user_id']; } $commentdata['comment_parent'] = isset($commentdata['comment_parent']) ? absint($commentdata['comment_parent']) : 0; $parent_status = ( 0 < $commentdata['comment_parent']="" )="" wp_get_comment_status($commentdata['comment_parent'])="" :="" '';="" $commentdata['comment_parent']="(" 'approved'="=" $parent_status="" ||="" 'unapproved'="=" $parent_status="" )="" $commentdata['comment_parent']="" :="" 0;="" if="" (="" !="" isset(="" $commentdata['comment_author_ip']="" )="" )="" {="" $commentdata['comment_author_ip']="$_SERVER['REMOTE_ADDR'];" }="" $commentdata['comment_author_ip']="preg_replace(" '/[^0-9a-fa-f:.,="" ]/',="" '',="" $commentdata['comment_author_ip']="" );="" if="" (="" !="" isset(="" $commentdata['comment_agent']="" )="" )="" {="" $commentdata['comment_agent']="isset(" $_server['http_user_agent']="" )="" $_server['http_user_agent']:="" '';="" }="" $commentdata['comment_agent']="substr(" $commentdata['comment_agent'],="" 0,="" 254="" );="" if="" (="" empty(="" $commentdata['comment_date']="" )="" )="" {="" $commentdata['comment_date']="current_time('mysql');" }="" if="" (="" empty(="" $commentdata['comment_date_gmt']="" )="" )="" {="" $commentdata['comment_date_gmt']="current_time(" 'mysql',="" 1="" );="" }="" $commentdata="wp_filter_comment($commentdata);" $commentdata['comment_approved']="wp_allow_comment($commentdata);" $comment_id="wp_insert_comment($commentdata);" if="" (="" !="" $comment_id="" )="" {="" $fields="array(" 'comment_author',="" 'comment_author_email',="" 'comment_author_url',="" 'comment_content'="" );="" foreach(="" $fields="" as="" $field="" )="" {="" if="" (="" isset(="" $commentdata[="" $field="" ]="" )="" )="" {="" $commentdata[="" $field="" ]="$wpdb-">strip_invalid_text_for_column( $wpdb->comments, $field, $commentdata[ $field ] ); } } $commentdata = wp_filter_comment( $commentdata ); $commentdata['comment_approved'] = wp_allow_comment( $commentdata ); $comment_ID = wp_insert_comment( $commentdata ); if ( ! $comment_ID ) { return false; } } /** * Fires immediately after a comment is inserted into the database. * * @since 1.2.0 * * @param int $comment_ID The comment ID. * @param int $comment_approved 1 (true) if the comment is approved, 0 (false) if not. */ do_action( 'comment_post', $comment_ID, $commentdata['comment_approved'] ); if ( 'spam' !== $commentdata['comment_approved'] ) { // If it's spam save it silently for later crunching if ( '0' == $commentdata['comment_approved'] ) { wp_notify_moderator( $comment_ID ); } // wp_notify_postauthor() checks if notifying the author of their own comment. // By default, it won't, but filters can override this. if ( get_option( 'comments_notify' ) && $commentdata['comment_approved'] ) { wp_notify_postauthor( $comment_ID ); } } return $comment_ID; }
更新版本 | 源码位置 | 使用 | 被使用 |
---|---|---|---|
4.7.0 | wp-includes/comment.php | 7 | 13 |
笔记(Notes)
基本示例
类别:WordPress 函数手册、
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!