我需要在要通过元查询过滤的评论中包含子评论(回复)。
如果我要过滤等级为3/5的评论,则需要在查询中包括其子级(即使子级与元查询不匹配)。
$comments = get_comments( array (
//'meta_key' => 'rating',
'order' => 'ASC',
'orderby' => 'date',
'post_id' => $_POST['post_id'],
'status' => 'approve',
'meta_query' => array(
array(
'key' => 'rating',
'value' => $_POST['rating']
)
)
) );
是否有一种方法可以“强制包含”与初始查询不匹配的子级?
(要实时查看该问题,请尝试在此页面上按3星过滤评论,并注意过滤器中是否包含 评论回复:https://herbalnitro.com/product/extreme-energy/)>
答案 0 :(得分:2)
您只能获得带有特定元数据的唯一注释,但子注释显然不会继承此元数据的问题。因此,您需要分两个步骤进行操作:1)获取带有meta的评论。 2)取得与meta在一起的父母的孩子评论。
// get comments with meta
$comments = get_comments( array (
'order' => 'ASC',
'orderby' => 'date',
'post_id' => $_POST['post_id'],
'status' => 'approve',
'meta_query' => array(
array(
'key' => 'rating',
'value' => $_POST['rating']
)
)
) );
// find children comments
$comments_children = array();
foreach ( $comments as $comment ) {
$comments_children += get_comments(array('parent' => $comment->comment_ID, 'status' => 'approve', 'hierarchical' => true));
}
// combine all comments
$comments = array_merge($comments, $comments_children);
// print comments template if needed
wp_list_comments(array(), $comments);