Я удивлен, что не могу найти много по этой теме, возможно, я запутался.
Я создаю страницу архива комментариев. Я хочу получить все сообщения с комментариями, где я укажу заголовок сообщения, за которым следуют все комментарии к этому сообщению, используя wp_list_comments или WP Comment Query.
Мой вопрос заключается в том, как я могу фильтровать WP_Query(), чтобы я мог возвращать только сообщения с комментариями.
Я пытался изменить этот подход список сообщений без комментариев - ответ постпостмодерна а я хочу сделать с точностью до наоборот.
Вот функция:
function filter_comment_count( $sql ){
global $wpdb;
$comment_count = get_query_var( 'comment_count' );
if( is_numeric($comment_count) )
$sql .= $wpdb->prepare( " AND {$wpdb->posts}.comment_count != %d ", $comment_count);
return $sql;
}
add_filter( 'posts_where', 'filter_comment_count' );
И затем я пытаюсь использовать его в своем цикле, вот отрывок:
$args = array (
'comment_count' => '0'
'pagination' => true,
'posts_per_page' => '10',
);
$the_query = new WP_Query($args);
while($the_query->have_posts()) : $the_query->the_post();
get_template_part( 'content', get_post_format() );
endwhile;
wp_reset_postdata();
Я предполагаю, что бит, который меня сбивает с толку, это AND {$wpdb->posts}.comment_count != %d
я хочу, чтобы он возвращал comment_count
не равный 0 или что-то еще, что позволяет мне получать только сообщения с комментариями в моем WP_Query($args);
Также я не уверен, куда поставить remove_filter( 'posts_where', 'filter_comment_count' );
?
Я понимаю, что есть 'orderby' => 'comment_count'
, но это не совсем помогает моей ситуации, насколько я понимаю.