получить количество постов в рубрике

решения есть, но не лучшие. можно запустить отдельный цикл, перебрать нужную категорию увеличивая счетчик. можно пропарсить вывод категорий. можно в БД искать объединяя таблицы, но разве нет простой функции (запроса), чтоб получить в переменную количество постов из определенной категории? похоже что что-то пропустил и теперь парюсь.
Подскажите более толковое решение друзья? О_о

вот тут мне советовали: http://www.slaff.net/2006/09/05/kak-poschitat-kolichestvo-postov-kommentov-v-wp.html но я так и не попробовала.
вроде где-то кто-то писал, что тот код работает некорректно (см. комменты).
Если ты его до ума доведешь, выложи сюда готовый?

кхе, …FROM blog_post2cat… для устаревших веток wp, начиная 2.3.1 не валидно. ищу решение дальше..
зы. обязательно выложу, если меня не опередят

Одним глазом глянул и сразу увидел лажу: WHERE post_status = ‘publish’” Как минимум, надо еще ставить post_type=’post’, иначе будут посчитаны и посты, и страницы, и аттачи.

Таблицы объединять незачем, достаточно пройтись по post2cat.
select count(*) from wp_post2cat where category_id=1

В 2.3 всё еще проще: в таблице wp_term_taxonomy есть поле count. Так что вот так:
select count from wp_term_taxonomy where term_id=1

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

function get_posts_count_per_cat($cat = 0) {
  global $wpdb;
  $cat = ereg_replace("[^0-9]","",$cat);
  return $wpdb->get_var("select count from $wpdb->term_taxonomy where term_id = $cat");
}

Ю.Б., sonika, спасибо, зачтено =)

Только вместо wp_term_taxonomy правильнее писать $wpdb->term_taxonomy

Только вместо wp_term_taxonomy правильнее писать $wpdb->term_taxonomy

поторопился. поправил сорс

upd. тему в FAQ ?

Отлично! В копилку 🙂

В доках решения,
<?php wp_count_posts(‘type’, ‘status’); ?>

Anonymous
Отправить
Ответ на: