WordPress at a glance

wp_get_post_categories() WP 1.0

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.

Works based on: wp_get_object_terms()
1 time = 0.00111s = very slow | 50000 times = 43.9s = very slow

No Hooks.


Array/WP_Error. 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. WP_Error object if 'category' taxonomy doesn't exist.


wp_get_post_categories( $post_id, $args );
The Post ID. Does not default to the ID of the global $post.
Default: 0
Category query parameters. See WP_Term_Query::__construct() for supported arguments.
Default: empty array


  • See: wp_get_object_terms()


Since 2.1.0 Introduced.

Code of wp_get_post_categories() WP 5.6

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;

From category: For posts

No comments
    Log In