WordPress添加新评论函数:wp_new_comment
WordPress函数wp_new_comment()向数据库添加新评论。该函数接受一个包含评论数据的数组和一个可选的布尔值参数,用于指定在发生错误时是否返回WP_Error对象。成功时返回评论的ID,失败时返回false或WP_Error对象。
wp_new_comment( array $commentdata, bool $wp_error = false ): int|false|WP_Error
函数参数
$commentdata
数据类型:array (必须)
评论数据。
- comment_author:字符串,评论作者的姓名。
- comment_author_email:字符串,评论作者的电子邮件地址。
- comment_author_url:字符串,评论作者URL。
- comment_content:字符串,评论的内容。
- comment_date:字符串,提交评论的日期。默认值为当前时间。
- comment_date_gmt:字符串,评论在GMT时区提交的日期。
- comment_type:字符串,评论类型。默认“comment”。
- comment_parent:整数,此评论的父级ID(如果有的话)。默认值0。
- comment_post_ID:整数,与评论相关的帖子的ID。
- user_id:整数,提交评论的用户的ID。默认值0。
- user_ID:整数,保留以实现向后兼容性。请改用$user_id。
- comment_agent:字符串,评论作者用户代理。默认值是$_SERVER超全局中的“HTTP_USER_AGENT”值。
- comment_author_IP:字符串,评论作者IP地址。默认值是$_SERVER超全局中的“REMOTE_ADDR”值。
$wp_error
数据类型:bool (可选)
错误是否应该作为WP_Error对象返回,而不是执行WP_die()
函数返回值
int|false|WP_Error
成功时返回评论的ID,失败时返回false或WP_Error。
函数使用示例
在用户提交评论时自动将评论添加到数据库中,并发送一封通知邮件给管理员。
// 假设这是从用户表单提交的评论数据
$comment_data = array(
'comment_post_ID' => 666, // 相关文章ID
'comment_author' => '背字根',
'comment_author_email' => 'beizigen@qq.com',
'comment_author_url' => 'https://www.beizigen.com/',
'comment_content' => '这是一条评论内容。',
'comment_type' => 'comment',
'comment_parent' => 0, // 父级评论ID
'user_id' => 1, // 用户ID
'comment_agent' => 'Mozilla/5.0',
'comment_author_IP' => '127.0.0.1'
);
// 调用wp_new_comment函数添加评论
$comment_id = wp_new_comment($comment_data);
// 检查评论是否成功添加,若成功,发送通知邮件给管理员
if ($comment_id) {
$admin_email = get_option('admin_email');
$subject = '新评论已提交';
$message = '您的网站上有一条评论已提交。评论内容如下:' . $comment_data['comment_content'];
wp_mail($admin_email, $subject, $message);
} else {
echo '评论添加失败,请重试。';
}
扩展阅读
wp_new_comment()函数位于:wp-includes/comment.php
相关函数:
- wp_check_comment_data()
- wp_get_comment_status()
- wp_filter_comment()
- wp_insert_comment()
- wp_allow_comment()
- is_wp_error()
- wp_handle_comment_submission()

