Intereting Posts
Плагин, который добавляет значок рядом со ссылками Как получить почтовый URL-адрес в фильтре the_content? WordPress кэширует меню с Transient API Как добавить 2-й «избранный образ» в сообщение? Пользовательский фильтр tax_query не работает для категорий товаров Woocommerce Исправить проблему с Textdomain Translation не удалось открыть поток: разрешение отклонено предупреждение, а load_textdomain Пользовательская ссылка типа сообщения из плагина Предложения по миграции WPMU (расширенный) Как контролировать порядок сочетания статичных стилей и скриптов – проблема скорости сайта Перенаправить с главной страницы на страницу списка сообщений? Возможности пользовательских таксономий Изменение подключения MySQL PDO к соединению WPDB Получать количество сообщений для результата поиска на основе типа сообщения Как переместить существующую папку wp-содержимого WordPress вместе с базой данных на новый сервер и новое доменное имя?

Количество кол-ва сообщений за текущий месяц

Я пытаюсь повторить количество сообщений за текущий месяц из всех категорий, но он не работает.

<?php $month = date('m'); $year = date('Y'); $countposts = get_posts('post_type=post&year=' . $year . '&monthnum=' . $month . '&cat=3'); echo 'New posts ' . count($countposts); ?> 

категория 3 является родительской категорией и имеет много подкатегорий. Независимо от того, что я делаю, он возвращает значение 5. Я опубликовал 30 сообщений для этого месяца, чтобы проверить его, но он их не считает. 🙁

Что я делаю неправильно?

Обновление Я пробовал следующий запрос и возвращает тот же самый outpout

  <?php wp_reset_postdata(); $current_year = date('Y'); $current_month = date('m'); $args = array( 'cat' => 3, 'year' => $current_year, 'monthnum' => $current_month, 'post_status' => 'publish', 'post_type' => 'post' ); $number_posts = get_posts( $args ); echo 'New posts ' . count($number_posts); ?> 

Solutions Collecting From Web of "Количество кол-ва сообщений за текущий месяц"

Это связано с тем, что posts_per_page get_posts() функции get_posts() умолчанию get_posts() 5 . Установите значение -1 в ваших $args .

Я бы не использовал функцию get_posts для подсчета сообщений.

Он выберет эти сообщения, и может быть много данных, которые вы будете передавать / читать из базы данных, и вы не будете использовать.

Другая проблема заключается в том, что get_posts – очень сложная функция. Просто взгляните на реализацию get_posts в get_posts wp-includes/query.php и проверьте, сколько операций оно делает. Таким образом, это не очень эффективное решение для подсчета сообщений.

Поэтому вместо этого я бы использовал пользовательский SQL-запрос. Это будет намного более эффективно. Вы можете использовать эту функцию:

 function my_count_posts_from_month($year, $month) { global $wpdb; $query = "SELECT count(ID) FROM {$wpdb->posts} WHERE post_type='post' AND post_status='publish' AND YEAR(post_date)=%d AND MONTH(post_date)=%d"; return $wpdb->get_var( $wpdb->prepare( $query ), $year, $month ); }