我需要得到一个帖子的所有评论,包括元价值。。例如,我需要所有注释字段+一个元值。
我尝试了以下代码,但是。。它不起作用
$args = array(
\'status\' => \'approve\',
\'type\' => \'comment\',
\'post_id\' => \'99\',
\'post_type\' => \'product\',
//\'count\' => true,
\'meta_query\' => array(
array(
\'key\' => \'comment_rating_avg_key\',
\'compare\' => \'EXISTS\',
),
),
);
$comments_query = new WP_Comment_Query;
$comments = $comments_query->query( $args );
var_dump($comments);
我是否需要编写自定义查询来获取它?或者可以使用默认WP函数完成?
最合适的回答,由SO网友:s_ha_dum 整理而成
WP_Comment_Query
不提取评论元。您可以按注释元进行搜索,但查询不会返回该数据。你可以通过查看抄本轻松地检查这一点。
您需要循环查看结果并运行get_comment_meta()
, 或者基本上通过the_comments
.
还可以向返回的数据添加filtering the "fields" clauses:
function add_cmeta_wpse_212423($clauses){
// var_dump($clauses);
global $wpdb;
$meta = "(SELECT meta_value
FROM {$wpdb->commentmeta}
WHERE (
comment_id = comment_ID
AND meta_key = \'test_comment_meta\')
) as test_comment_meta";
$clauses[\'fields\'] .= \', \'.$meta;
return $clauses;
}
add_filter(\'comments_clauses\',\'add_cmeta_wpse_212423\');
我创建了一个子查询。您可以创建
JOIN
也