wp_count_terms()
Counts how many elements (terms) are in the taxonomy, with or without posts.
No Hooks.
Returns
String|WP_Error
. How many terms are in the taxonomy. WP_Error if the taxonomy does not exist.
Usage
WP 5.6
wp_count_terms( $args );
- $args(array/string)
Can accept all the same parameters as get_terms().
However, generally, it makes sense to specify only:
-
taxonomy(string)
Name of the taxonomy. - hide_empty(true/false)
true/1
- will count elements with posts.
false/0
- will count all elements.
Default: array()
-
WP 5.5 and lower
wp_count_terms( $taxonomy, $args );
- $taxonomy(string) (required)
- Name of the taxonomy.
- $args(array/string)
Can accept all the same parameters as get_terms(). However, generally, it makes sense to specify only one argument:
hide_empty
. Passing other parameters usually does not make sense. This parameter determines whether to count empty elements of the taxonomy:hide_empty=1
- hide empty elements, which means elements with posts will be counted.hide_empty=0
- do not hide elements, which means all elements will be counted.
Default: array()
Examples
#1 Count the elements of the taxonomy taxa
For WP 5.6+:
echo wp_count_terms( [ 'taxonomy' => 'taxa', 'hide_empty' => false ] ); // Get something like: // 100
#2 Count the elements of the taxonomy taxa
Demonstration of how the function works. Suppose we have a taxonomy taxa
and it has 50 items with posts and 50 empty items.
// all elements with empty echo wp_count_terms( 'taxa', 'hide_empty=0' ); // > 100 // only items with posts echo wp_count_terms( 'taxa', 'hide_empty=1' ); // > 50 // can be written as an array echo wp_count_terms( 'taxa', [ 'hide_empty'=>1 ] ); // > 50 // make sure there is a dachshund $count = wp_count_terms( 'taxa', [ 'hide_empty'=>1 ] ); if( ! is_wp_error( $count ) ){ echo $count; // > 50 }
Changelog
Since 2.3.0 | Introduced. |
Since 5.6.0 | Changed the function signature so that the $args array can be provided as the first parameter. |