Как получить счетчик сообщений для фильтрации последних дней x по категориям

Как я могу получить количество сообщений, например, за последние 4 дня, но только для определенных категорий, например. (1,2,3)?

Заранее спасибо.

function get_days_ago_post_count_by_categories($ids){ $date_query = array( array( 'after'=>'4 days ago', 'inclusive' => true, ) ); $args = array( 'post_type' => 'post', 'post_status'=>'publish', 'category__in' => (array)$ids, 'date_query' => $date_query, 'no_found_rows' => true, 'suppress_filters' => true, 'fields'=>'ids', 'posts_per_page'=>-1, 'orderby' => 'ID' ); $query = new WP_Query( $args ); return $query->post_count; } 

Примечание: код не протестирован и просто покажет вам, как его достичь с помощью WP_Query

WP_Query вводит date_query с 3.7.


Как вы можете видеть, я добавляю несколько дополнительных аргументов WP_Query и их цель – генерировать наиболее оптимизированный SQL для повышения производительности. Однако сгенерированный SQL все равно будет SELECT ID .

На самом деле, я бы предположил, что вы используете строку SQL с $wpdb->get_var . Вы знаете, функция SQL «aggregate» (SELECT COUNT(ID) in your case) занимает меньше ресурсов, чем "SELECT ID" .

Вы можете найти созданный WP_Query SQL, $query->request .