Count posts in custom taxonomy

Is there a way to count all published posts from a custom taxonomy?

While looking around I found this snippet but I didn’t manage to get it to work …

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);

9 s
9

Use an instance of WP_Query to query the database.
http://codex.wordpress.org/Class_Reference/WP_Query

To query database for custom taxonomies use,

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

For more details on available options see: Taxonomy Parameters
http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters

Retrieve published posts using

'post_status' => 'publish'

Use found_posts to retrive the number of posts

$count = $query->found_posts;

Leave a Comment