wp_get_post_categories

The timeline below displays how wordpress function wp_get_post_categories has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.1

/**
 * Retrieves 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.
 *
 * @since 2.1.0
 *
 * @see wp_get_object_terms()
 *
 * @param int   $post_id Optional. The Post ID. Does not default to the ID of the
 *                       global $post. Default 0.
 * @param array $args    Optional. Category query parameters. Default empty array.
 *                       See WP_Term_Query::__construct() for supported arguments.
 * @return 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.
 */
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;
}

WordPress Version: 5.5

/**
 * 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.
 *
 * @since 2.1.0
 *
 * @see wp_get_object_terms()
 *
 * @param int   $post_id Optional. The Post ID. Does not default to the ID of the
 *                       global $post. Default 0.
 * @param array $args    Optional. Category query parameters. Default empty array.
 *                       See WP_Term_Query::__construct() for supported arguments.
 * @return 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.
 */
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;
}

WordPress Version: 4.8

/**
 * 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.
 *
 * @since 2.1.0
 *
 * @see wp_get_object_terms()
 *
 * @param int   $post_id Optional. The Post ID. Does not default to the ID of the
 *                       global $post. Default 0.
 * @param array $args    Optional. Category query parameters. Default empty array.
 *                       See WP_Term_Query::__construct() for supported arguments.
 * @return 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.
 */
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;
}

WordPress Version: 4.6

/**
 * 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.
 *
 * @since 2.1.0
 *
 * @see wp_get_object_terms()
 *
 * @param int   $post_id Optional. The Post ID. Does not default to the ID of the
 *                       global $post. Default 0.
 * @param array $args    Optional. Category arguments. See wp_get_object_terms(). Default empty.
 * @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.
 */
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;
}

WordPress Version: 4.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.
 *
 * @since 2.1.0
 *
 * @see wp_get_object_terms()
 *
 * @param int   $post_id Optional. The Post ID. Does not default to the ID of the
 *                       global $post. Default 0.
 * @param array $args    Optional. Category arguments. Default empty.
 * @return array List of categories.
 */
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;
}

WordPress Version: 3.7

/**
 * 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.
 *
 * @since 2.1.0
 *
 * @uses wp_get_object_terms() Retrieves the categories. Args details can be found here.
 *
 * @param int $post_id Optional. The Post ID.
 * @param array $args Optional. Overwrite the defaults.
 * @return array
 */
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;
}