get_category( int|object $category, string $output = OBJECT, string $filter = ‘raw’ ): object|array|WP_Error|null

Retrieves category data given a category ID or category object.


If you pass the $category parameter an object, which is assumed to be the category row object retrieved the database. It will cache the category data.

If you pass $category an integer of the category ID, then that category will be retrieved from the database, if it isn’t already cached, and pass it back.

If you look at get_term() , then both types will be passed through several filters and finally sanitized based on the $filter parameter value.


Category ID or category row object.
The required return type. One of OBJECT, ARRAY_A, or ARRAY_N, which correspond to a WP_Term object, an associative array, or a numeric array, respectively.


How to sanitize category fields. Default 'raw'.



object|array|WP_Error|null Category data in type defined by $output parameter.
WP_Error if $category is empty, null if it does not exist.


function get_category( $category, $output = OBJECT, $filter = 'raw' ) {
	$category = get_term( $category, 'category', $output, $filter );

	if ( is_wp_error( $category ) ) {
		return $category;

	_make_cat_compat( $category );

	return $category;



User Contributed Notes

  1. Skip to note 4 content

    Example passing Category ID (integer):

    <?php $category = get_category( 106 ); ?>

    The output of print_r( $category ); would be similar to:

    stdClass Object
    [term_id] => 106
    [name] => Category Name
    [slug] => category-name
    [term_group] => 0
    [term_taxonomy_id] => 108
    [taxonomy] => category
    [description] => This is the category description.
    [parent] => 62
    [count] => 17
    [filter] => raw
    [cat_ID] => 106
    [category_count] => 17
    [category_description] => This is the category description.
    [cat_name] => Category Name
    [category_nicename] => category-name
    [category_parent] => 62

You must log in before being able to contribute a note or feedback.