wp_get_post_categories ( int $post_id, array $args = array() )

Retrieve the list of categories for a post.

Compatibility layer for themes and plugins. Also an easy layer of abstraction away from the complexity of the taxonomy layer.

Return: (array) List of categories.

Source file: wp-includes/post.php

View source



(int) (Optional) The Post ID. Does not default to the ID of the global $post. Default 0.


(array) (Optional) Category arguments.

Default value: array()

More Information

The results from wp_get_post_categories() aren’t cached which will result in a db call beign made every time this function is called. Use this function with care. For performance, functions like get_the_category() should be used to return categories attached to a post

Used by


function wp_get_post_categories( $post_id = 0, $args = array() ) {
	$post_id = (int) $post_id;

	$defaults = array('fields' => 'ids');
	$args = wp_parse_args( $args, $defaults );

	$cats = wp_get_object_terms($post_id, 'category', $args);
	return $cats;


User Contributed Notes

  1. The example below shows how categories are retrieved, and then additional information is retrieved for each category.

    $post_categories = wp_get_post_categories( $post_id );
    $cats = array();
    foreach($post_categories as $c){
    	$cat = get_category( $c );
    	$cats[] = array( 'name' => $cat->name, 'slug' => $cat->slug );

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