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 使用简介
$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.';
}
默认使用方法
$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 | 字符串 | 可选 | 排序方式: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 | 字符串 | 可选 | 自定义评论元数据的键 | None |
$meta_value | 字符串 | 可选 | 自定义评论元数据的值 | None |
$meta_query | 数组 | 可选 | 高级元数据查询(WP 3.5+) | None |
$fields | 字符串 | 可选 | 指定返回字段: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
(整数):评论 IDcomment_post_ID
(整数):评论所属的文章/页面 IDcomment_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
(整数):评论评分(一般为 0,已废弃字段)comment_approved
(字符串):评论审核状态(可为0
、1
或"spam"
)comment_agent
(字符串):评论者的客户端信息(如浏览器、操作系统等)comment_type
(字符串):评论类型(例如:pingback
、trackback
,普通评论为空)comment_parent
(字符串):父评论的 ID,顶级评论为 0user_id
(整数):如果评论者是已注册用户,则为其用户 ID