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

Retrieve the list of categories for a post.


Description Description

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


Parameters Parameters

$post_id

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

$args

(array) (Optional) Category arguments. See wp_get_object_terms().

Default value: array()


Top ↑

Return Return

(array) List of categories. If the $fields argument passed via $args is 'all' or 'all_with_object_id', an array of WP_Term objects will be returned. If $fields is 'ids', an array of category ids. If $fields is 'names', an array of category names.


Top ↑

Source Source

File: wp-includes/post.php

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


Top ↑

Changelog Changelog

Changelog
Version Description
2.1.0 Introduced.

Top ↑

More Information More Information

The results from wp_get_post_categories() aren’t cached which will result in a database call being 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.



Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note content
    Contributed by Codex

    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 or feedback.