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

I can get post count with this code in taxonomy archive page . problem is that i can not specify post type. i just want count only A custom post types.

i tried to this:

$posts = get_queried_object(
$args = array(
  'post_type' => 'custom-post'
));
$the_query = new WP_Query( $args );
echo $the_query->found_posts;

but this code display total custom post type count

  • WordPress doesn't store this information, you'll need to perform a separate query for a specific post type in that term. – Jacob Peattie Jul 26 '19 at 10:01
  • now it showed total custom post count $posts = get_queried_object( $args = array( 'post_type' => 'CUSTOM-POST' )); $the_query = new WP_Query( $args ); echo $the_query->found_posts; – Gidromasservis QSC Jul 26 '19 at 11:14
0
    function wpse340250_term_count( WP_Term $term, $post_type) {
    $q_args = [
        'post_type' => $post_type,
        'nopaging' => true, // no limit, pagination
        'fields' => 'ids', // only return post id's instead of full WP_Post objects will speed up
        'tax_query' => array(
            array(
                'taxonomy' => $term->taxonomy,
                'field'    => 'term_id',
                'terms'    => $term->term_id,
            ),
        ),
    ];
    $term_count = get_posts($q_args);

    return count($term_count);
}
<?php

// get the terms you need
$terms = get_terms( $posts = get_queried_object());
$sorted_terms = [];
if ( $terms ) {
    foreach ( $terms as $term ) {
        $sorted_term = [

            'count'              => (int) wpse340250_term_count( $term, 'Custom-post' ),
            // everything you will need later here
        ];

        // here handle all dynamic checks add them to $sorted_term
        if ( $term->taxonomy == 'category' && is_category() ) {
            $thisCat = get_category( get_query_var( 'cat' ), false );
            if ( $thisCat->term_id == $term->term_id ) {
                $sorted_term['carrentActiveClass'] = 'class="active-cat"';
            }
        }

        // for the sake of getting to the core of the answer I left stuff out.


        // add the complete sorted_term to the collection
        $sorted_terms[] = $sorted_term;
    }


}
// all done gathering data now we handle html output
?>
                       <?php echo $sorted_term['count'] ?>

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.