WordPress 评论查询类 WP Comment Query 参考文档和使用示例

WP_Comment_Query 是用来查询 WordPress 评论数据的 PHP 类,源文件位于 wp-includes/comment.php 文件,我们可以使用该类查询 WordPress 数据库中 wp_commentswp_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、trashNone
$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(整数):评论 ID
  • comment_post_ID(整数):评论所属的文章/页面 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(整数):评论评分(一般为 0,已废弃字段)
  • comment_approved(字符串):评论审核状态(可为 01"spam"
  • comment_agent(字符串):评论者的客户端信息(如浏览器、操作系统等)
  • comment_type(字符串):评论类型(例如:pingbacktrackback,普通评论为空)
  • comment_parent(字符串):父评论的 ID,顶级评论为 0
  • user_id(整数):如果评论者是已注册用户,则为其用户 ID

Related Posts

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注