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.00111 sec (very slow) | 50000 times — 43.9 sec (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.
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.7.2

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