Количество отправляет в пользовательской таксономии

Существует ли способ считать все опубликованные сообщения от пользовательской таксономии?

При оглядывании я нашел этот отрывок, но мне не удалось заставить его работать …

global $wpdb;
$query = "
        SELECT COUNT( DISTINCT cat_posts.ID ) AS post_count
        FROM wp_term_taxonomy AS cat_term_taxonomy INNER JOIN wp_terms AS cat_terms ON
        cat_term_taxonomy.term_id = cat_terms.term_id
        INNER JOIN wp_term_relationships AS cat_term_relationships 
        ON cat_term_taxonomy.term_taxonomy_id = cat_term_relationships.term_taxonomy_id
        INNER JOIN wp_posts AS cat_posts 
        ON cat_term_relationships.object_id = cat_posts.ID
        WHERE cat_posts.post_status = 'publish' 
        AND cat_posts.post_type = 'post' 
        AND cat_term_taxonomy.taxonomy = 'YOUR-CUSTOM-TAXONOMY' 
        AND cat_terms.slug IN ('TERM-SLUG-1, TERM-SLUG-2')
    ";
return $wpdb->get_var($query);
6
15.12.2012, 19:02
4 ответа

Используйте экземпляр WP_Query для запросов базы данных. http://codex.wordpress.org/Class_Reference/WP_Query

Запрашивать базу данных для пользовательского использования taxonomies,

$query = new WP_Query( array( 'people' => 'bob' ) );

Для получения дополнительной информации на доступных вариантах см.: Параметры Таксономии http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters

Получите опубликованное использование сообщений

'post_status' => 'publish'

Использовать found_posts к retrive количество сообщений

$count = $query->found_posts;
5
19.02.2020, 22:04
function wp_get_productcat_postcount($id) {

    //return $count;
    $args = array(
      'post_type'     => 'product', //post type, I used 'product'
      'post_status'   => 'publish', // just tried to find all published post
      'posts_per_page' => -1,  //show all
      'tax_query' => array(
        'relation' => 'AND',
        array(
          'taxonomy' => 'product_cat',  //taxonomy name  here, I used 'product_cat'
          'field' => 'id',
          'terms' => array( $id )
        )
      )
    );

    $query = new WP_Query( $args);

    /*
    echo '<pre>';

    print_r($query->post_count);
    echo '</pre>';
    */

    return (int)$query->post_count;

}
2
19.02.2020, 22:04

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

echo $custom_tax_obj->count;
1
19.02.2020, 22:04

Можно сделать это с текущим объектом с get_queried_object ()

$posts = get_queried_object();
echo $posts->count;

Иначе можно ли излишне выполнить второй запрос, правильно?

1
19.02.2020, 22:04
  • 1
    Brilliant!:) Большое спасибо. Это работает на то, когда я в категории. :) –  Woppi 31.05.2017, 12:50

Теги

Похожие вопросы