WP_Comment_Query 是用来查询 WordPress 评论数据的 PHP 类,源文件位于 wp-includes/comment.php 文件,我们可以使用该类查询 WordPress 数据库中 wp_comments
和 wp_commentmeta
数据表中的数据,该类从 WordPress 3.1 开始引入,只要 WordPress 的版本号大于等于 3.1,都可以直接使用 WP Comment Query 类查询数据。
WP Comment Query 使用简介
<?php
$args = array(
// 类参数
);
// 新建查询
$comments_query = new WP_Comment_Query;
$comments = $comments_query->query( $args );
// 循环输入评论数据
if ( $comments ) {
foreach ( $comments as $comment ) {
echo '<p>' . $comment->comment_content . '</p>';
}
} else {
echo 'No comments found.';
}
?>
默认使用方法
<?php $args = array( 'author_email' => '', 'author__in' => '', 'author__not_in' => '', 'include_unapproved' => '', 'fields' => '', 'ID' => '', 'comment__in' => '', 'comment__not_in' => '', 'karma' => '', 'number' => '', 'offset' => '', 'orderby' => '', 'order' => 'DESC', 'parent' => '', 'post_author__in' => '', 'post_author__not_in' => '', 'post_id' => 0, 'post__in' => '', 'post__not_in' => '', 'post_author' => '', 'post_name' => '', 'post_parent' => '', 'post_status' => '', 'post_type' => '', 'status' => 'all', 'type' => '', 'type__in' => '', 'type__not_in' => '', 'user_id' => '', 'search' => '', 'count' => false, 'meta_key' => '', 'meta_value' => '', 'meta_query' => '', 'date_query' => null, // 查看 WP_Date_Query ); ?>
参数说明
- $status
- (字符串) (可选) 值返回指定状态的评论
- 'hold' – 未通过审核的评论
- 'approve' – 已审核的评论
- 'spam' – 被标记未垃圾的评论
- 'trash' – 回收站中的评论
- 默认: None
- $orderby
- (字符串) (可选) 设置排列评论数据使用的字段
- 默认: comment_date_gmt
- $order
- (字符串) (可选) 排列 $orderby 的方法,可用值:
- 'ASC' – 升序 (从低到高)
- 'DESC' – 降序 (从高到低)
- 默认: DESC
- $number
- (整数) (可选) 返回的评论数量,留空返回所有评论。
- 默认: unlimited
- $offset
- (整数) (可选) 偏移的评论数量,必须和 $number 参数一起使用
- 默认: 0
- $post_id
- (整数) (可选) 只返回指定 ID 文章的评论。
- 默认: None
- $user_id
- (整数) (可选) 只返回指定 ID 用户的评论。
- 默认: None
- $count
- (整数) (可选) 只返回评论的总数量。
- 默认: None
- $type__in
- (数组) (可选) 允许指定评论类型
- 默认: None
- $type__not_in
- (数组) (可选) 允许指定排除的评论类型
- 默认: None
- $meta_key
- (字符串) (可选) 自定义评论元数据 key。
- 默认: None
- $meta_value
- (字符串) (可选) 自定义评论元数据值。
- 默认: None
- $meta_query
- (数组) (可选) 高级元数据查询参数 (从 3.5 版开始可用)。
- 默认: None
- $fields
- (字符串) (可选) 指定返回的字段 ( 从4.0版本开始可用 )。
- 'ids' – 评论 ID
- '*' – 所有评论字段
- 默认: *
自定义字段参数
显示包含某个自定义字段的评论
- meta_key (字符串) – 自定义字段key
- meta_value ( 字符串) – 自定义字段值
- meta_query (数组) – 自定义字段参数 (从 3.5 版开始可用)
- key (字符串) -自定义字段key
- value (字符|数组) – 自定义字段值 (注意: 数组支持只限在以下对比方法中使用: ‘IN’, ‘NOT IN’, ‘BETWEEN’, ‘NOT BETWEEN’, ‘EXISTS’ 或 ‘NOT EXISTS’)
- compare (字符) – 数据对比方法 ‘=’, ‘!=’, ‘>’, ‘>=’, ‘<‘, ‘<=’, ‘LIKE’, ‘NOT LIKE’, ‘IN’, ‘NOT IN’, ‘BETWEEN’, ‘NOT BETWEEN’, ‘EXISTS’, 和 ‘NOT EXISTS’。 默认为 ‘=’。
- type (字符) – 自定义字段类型,可用的值有 ‘NUMERIC’, ‘BINARY’, ‘CHAR’, ‘DATE’, ‘DATETIME’, ‘DECIMAL’, ‘SIGNED’, ‘TIME’, ‘UNSIGNED’。 默认值为 ‘CHAR’。
显示特色评论
$comment_query = new WP_Comment_Query( array( 'meta_key' => 'featured', 'meta_value' => '1' ) );
多个元数据查询处理方法
$args = array( 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'featured', 'value' => '1' ), array( 'key' => 'buried', 'value' => '1', 'type' => 'numeric', 'compare' => '!=' ) ) ); $comment_query = new WP_Comment_Query( $args );
返回值
- (数组)
- 包含以下索引键的评论字段(如果没有评论,返回空数组):
- comment_ID
- (整数) 评论 ID
- comment_post_ID
- (整数) 评论所在的文章/页面
- comment_author
- (字符串) 评论者的名称
- comment_author_email
- (字符串) 评论者的电子邮件
- comment_author_url
- (字符串) 评论者的链接
- comment_author_IP
- (字符串) 评论者的 IP
- comment_date
- (字符串) 评论日期时间 (YYYY-MM-DD HH:MM:SS)
- comment_date_gmt
- (字符串) 评论的 GMT 日期时间 (YYYY-MM-DD HH:MM:SS)
- comment_content
- (字符串) 评论内容
- comment_karma
- (整数) 评论来源
- comment_approved
- (字符串) 评论审核状态 (0, 1 或 “spam”)
- comment_agent
- (字符串) 评论者的客户端信息 (浏览器, 操作系统,等)
- comment_type
- (字符串) 评论类型 (pingback|trackback), 普通评论为空
- comment_parent
- (字符串) 评论的父级评论 ID,顶级评论为 0
- user_id
- (整数) 如果评论者已注册,返回评论者的 用户ID