get_categories

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

WordPress Version: 5.5

/**
 * Taxonomy API: Core category-specific functionality
 *
 * @package WordPress
 * @subpackage Taxonomy
 */
/**
 * Retrieves a list of category objects.
 *
 * If you set the 'taxonomy' argument to 'link_category', the link categories
 * will be returned instead.
 *
 * @since 2.1.0
 *
 * @see get_terms() Type of arguments that can be changed.
 *
 * @param string|array $args {
 *     Optional. Arguments to retrieve categories. See get_terms() for additional options.
 *
 *     @type string $taxonomy Taxonomy to retrieve terms for. Default 'category'.
 * }
 * @return array List of category objects.
 */
function get_categories($args = '')
{
    $defaults = array('taxonomy' => 'category');
    $args = wp_parse_args($args, $defaults);
    /**
     * Filters the taxonomy used to retrieve terms when calling get_categories().
     *
     * @since 2.7.0
     *
     * @param string $taxonomy Taxonomy to retrieve terms from.
     * @param array  $args     An array of arguments. See get_terms().
     */
    $args['taxonomy'] = apply_filters('get_categories_taxonomy', $args['taxonomy'], $args);
    // Back compat.
    if (isset($args['type']) && 'link' === $args['type']) {
        _deprecated_argument(__FUNCTION__, '3.0.0', sprintf(
            /* translators: 1: "type => link", 2: "taxonomy => link_category" */
            __('%1$s is deprecated. Use %2$s instead.'),
            '<code>type => link</code>',
            '<code>taxonomy => link_category</code>'
        ));
        $args['taxonomy'] = 'link_category';
    }
    $categories = get_terms($args);
    if (is_wp_error($categories)) {
        $categories = array();
    } else {
        $categories = (array) $categories;
        foreach (array_keys($categories) as $k) {
            _make_cat_compat($categories[$k]);
        }
    }
    return $categories;
}

WordPress Version: 5.4

/**
 * Taxonomy API: Core category-specific functionality
 *
 * @package WordPress
 * @subpackage Taxonomy
 */
/**
 * Retrieve list of category objects.
 *
 * If you set the 'taxonomy' argument to 'link_category', the link categories
 * will be returned instead.
 *
 * @since 2.1.0
 * @see get_terms() Type of arguments that can be changed.
 *
 * @param string|array $args {
 *     Optional. Arguments to retrieve categories. See get_terms() for additional options.
 *
 *     @type string $taxonomy Taxonomy to retrieve terms for. Default 'category'.
 * }
 * @return array List of category objects.
 */
function get_categories($args = '')
{
    $defaults = array('taxonomy' => 'category');
    $args = wp_parse_args($args, $defaults);
    /**
     * Filters the taxonomy used to retrieve terms when calling get_categories().
     *
     * @since 2.7.0
     *
     * @param string $taxonomy Taxonomy to retrieve terms from.
     * @param array  $args     An array of arguments. See get_terms().
     */
    $args['taxonomy'] = apply_filters('get_categories_taxonomy', $args['taxonomy'], $args);
    // Back compat.
    if (isset($args['type']) && 'link' == $args['type']) {
        _deprecated_argument(__FUNCTION__, '3.0.0', sprintf(
            /* translators: 1: "type => link", 2: "taxonomy => link_category" */
            __('%1$s is deprecated. Use %2$s instead.'),
            '<code>type => link</code>',
            '<code>taxonomy => link_category</code>'
        ));
        $args['taxonomy'] = 'link_category';
    }
    $categories = get_terms($args);
    if (is_wp_error($categories)) {
        $categories = array();
    } else {
        $categories = (array) $categories;
        foreach (array_keys($categories) as $k) {
            _make_cat_compat($categories[$k]);
        }
    }
    return $categories;
}

WordPress Version: 5.3

/**
 * Taxonomy API: Core category-specific functionality
 *
 * @package WordPress
 * @subpackage Taxonomy
 */
/**
 * Retrieve list of category objects.
 *
 * If you change the type to 'link' in the arguments, then the link categories
 * will be returned instead. Also all categories will be updated to be backward
 * compatible with pre-2.3 plugins and themes.
 *
 * @since 2.1.0
 * @see get_terms() Type of arguments that can be changed.
 *
 * @param string|array $args {
 *     Optional. Arguments to retrieve categories. See get_terms() for additional options.
 *
 *     @type string $taxonomy Taxonomy to retrieve terms for. In this case, default 'category'.
 * }
 * @return array List of categories.
 */
function get_categories($args = '')
{
    $defaults = array('taxonomy' => 'category');
    $args = wp_parse_args($args, $defaults);
    /**
     * Filters the taxonomy used to retrieve terms when calling get_categories().
     *
     * @since 2.7.0
     *
     * @param string $taxonomy Taxonomy to retrieve terms from.
     * @param array  $args     An array of arguments. See get_terms().
     */
    $args['taxonomy'] = apply_filters('get_categories_taxonomy', $args['taxonomy'], $args);
    // Back compat
    if (isset($args['type']) && 'link' == $args['type']) {
        _deprecated_argument(__FUNCTION__, '3.0.0', sprintf(
            /* translators: 1: "type => link", 2: "taxonomy => link_category" */
            __('%1$s is deprecated. Use %2$s instead.'),
            '<code>type => link</code>',
            '<code>taxonomy => link_category</code>'
        ));
        $args['taxonomy'] = 'link_category';
    }
    $categories = get_terms($args);
    if (is_wp_error($categories)) {
        $categories = array();
    } else {
        $categories = (array) $categories;
        foreach (array_keys($categories) as $k) {
            _make_cat_compat($categories[$k]);
        }
    }
    return $categories;
}

WordPress Version: 4.8

/**
 * Taxonomy API: Core category-specific functionality
 *
 * @package WordPress
 * @subpackage Taxonomy
 */
/**
 * Retrieve list of category objects.
 *
 * If you change the type to 'link' in the arguments, then the link categories
 * will be returned instead. Also all categories will be updated to be backward
 * compatible with pre-2.3 plugins and themes.
 *
 * @since 2.1.0
 * @see get_terms() Type of arguments that can be changed.
 *
 * @param string|array $args {
 *     Optional. Arguments to retrieve categories. See get_terms() for additional options.
 *
 *     @type string $taxonomy Taxonomy to retrieve terms for. In this case, default 'category'.
 * }
 * @return array List of categories.
 */
function get_categories($args = '')
{
    $defaults = array('taxonomy' => 'category');
    $args = wp_parse_args($args, $defaults);
    $taxonomy = $args['taxonomy'];
    /**
     * Filters the taxonomy used to retrieve terms when calling get_categories().
     *
     * @since 2.7.0
     *
     * @param string $taxonomy Taxonomy to retrieve terms from.
     * @param array  $args     An array of arguments. See get_terms().
     */
    $taxonomy = apply_filters('get_categories_taxonomy', $taxonomy, $args);
    // Back compat
    if (isset($args['type']) && 'link' == $args['type']) {
        _deprecated_argument(
            __FUNCTION__,
            '3.0.0',
            /* translators: 1: "type => link", 2: "taxonomy => link_category" */
            sprintf(__('%1$s is deprecated. Use %2$s instead.'), '<code>type => link</code>', '<code>taxonomy => link_category</code>')
        );
        $taxonomy = $args['taxonomy'] = 'link_category';
    }
    $categories = get_terms($taxonomy, $args);
    if (is_wp_error($categories)) {
        $categories = array();
    } else {
        $categories = (array) $categories;
        foreach (array_keys($categories) as $k) {
            _make_cat_compat($categories[$k]);
        }
    }
    return $categories;
}

WordPress Version: 4.6

/**
 * Taxonomy API: Core category-specific functionality
 *
 * @package WordPress
 * @subpackage Taxonomy
 */
/**
 * Retrieve list of category objects.
 *
 * If you change the type to 'link' in the arguments, then the link categories
 * will be returned instead. Also all categories will be updated to be backward
 * compatible with pre-2.3 plugins and themes.
 *
 * @since 2.1.0
 * @see get_terms() Type of arguments that can be changed.
 *
 * @param string|array $args {
 *     Optional. Arguments to retrieve categories. See get_terms() for additional options.
 *
 *     @type string $taxonomy Taxonomy to retrieve terms for. In this case, default 'category'.
 * }
 * @return array List of categories.
 */
function get_categories($args = '')
{
    $defaults = array('taxonomy' => 'category');
    $args = wp_parse_args($args, $defaults);
    $taxonomy = $args['taxonomy'];
    /**
     * Filters the taxonomy used to retrieve terms when calling get_categories().
     *
     * @since 2.7.0
     *
     * @param string $taxonomy Taxonomy to retrieve terms from.
     * @param array  $args     An array of arguments. See get_terms().
     */
    $taxonomy = apply_filters('get_categories_taxonomy', $taxonomy, $args);
    // Back compat
    if (isset($args['type']) && 'link' == $args['type']) {
        /* translators: 1: "type => link", 2: "taxonomy => link_category" alternative */
        _deprecated_argument(__FUNCTION__, '3.0.0', sprintf(__('%1$s is deprecated. Use %2$s instead.'), '<code>type => link</code>', '<code>taxonomy => link_category</code>'));
        $taxonomy = $args['taxonomy'] = 'link_category';
    }
    $categories = get_terms($taxonomy, $args);
    if (is_wp_error($categories)) {
        $categories = array();
    } else {
        $categories = (array) $categories;
        foreach (array_keys($categories) as $k) {
            _make_cat_compat($categories[$k]);
        }
    }
    return $categories;
}

WordPress Version: 4.5

/**
 * Taxonomy API: Core category-specific functionality
 *
 * @package WordPress
 * @subpackage Taxonomy
 */
/**
 * Retrieve list of category objects.
 *
 * If you change the type to 'link' in the arguments, then the link categories
 * will be returned instead. Also all categories will be updated to be backwards
 * compatible with pre-2.3 plugins and themes.
 *
 * @since 2.1.0
 * @see get_terms() Type of arguments that can be changed.
 *
 * @param string|array $args {
 *     Optional. Arguments to retrieve categories. See {@see get_terms()} for additional options.
 *
 *     @type string $taxonomy Taxonomy to retrieve terms for. In this case, default 'category'.
 * }
 * @return array List of categories.
 */
function get_categories($args = '')
{
    $defaults = array('taxonomy' => 'category');
    $args = wp_parse_args($args, $defaults);
    $taxonomy = $args['taxonomy'];
    /**
     * Filter the taxonomy used to retrieve terms when calling {@see get_categories()}.
     *
     * @since 2.7.0
     *
     * @param string $taxonomy Taxonomy to retrieve terms from.
     * @param array  $args     An array of arguments. See {@see get_terms()}.
     */
    $taxonomy = apply_filters('get_categories_taxonomy', $taxonomy, $args);
    // Back compat
    if (isset($args['type']) && 'link' == $args['type']) {
        /* translators: 1: "type => link", 2: "taxonomy => link_category" alternative */
        _deprecated_argument(__FUNCTION__, '3.0', sprintf(__('%1$s is deprecated. Use %2$s instead.'), '<code>type => link</code>', '<code>taxonomy => link_category</code>'));
        $taxonomy = $args['taxonomy'] = 'link_category';
    }
    $categories = get_terms($taxonomy, $args);
    if (is_wp_error($categories)) {
        $categories = array();
    } else {
        $categories = (array) $categories;
        foreach (array_keys($categories) as $k) {
            _make_cat_compat($categories[$k]);
        }
    }
    return $categories;
}

WordPress Version: 4.4

/**
 * Taxonomy API: Core category-specific functionality
 *
 * @package WordPress
 * @subpackage Taxonomy
 */
/**
 * Retrieve list of category objects.
 *
 * If you change the type to 'link' in the arguments, then the link categories
 * will be returned instead. Also all categories will be updated to be backwards
 * compatible with pre-2.3 plugins and themes.
 *
 * @since 2.1.0
 * @see get_terms() Type of arguments that can be changed.
 * @link https://codex.wordpress.org/Function_Reference/get_categories
 *
 * @param string|array $args Optional. Change the defaults retrieving categories.
 * @return array List of categories.
 */
function get_categories($args = '')
{
    $defaults = array('taxonomy' => 'category');
    $args = wp_parse_args($args, $defaults);
    $taxonomy = $args['taxonomy'];
    /**
     * Filter the taxonomy used to retrieve terms when calling {@see get_categories()}.
     *
     * @since 2.7.0
     *
     * @param string $taxonomy Taxonomy to retrieve terms from.
     * @param array  $args     An array of arguments. See {@see get_terms()}.
     */
    $taxonomy = apply_filters('get_categories_taxonomy', $taxonomy, $args);
    // Back compat
    if (isset($args['type']) && 'link' == $args['type']) {
        /* translators: 1: "type => link", 2: "taxonomy => link_category" alternative */
        _deprecated_argument(__FUNCTION__, '3.0', sprintf(__('%1$s is deprecated. Use %2$s instead.'), '<code>type => link</code>', '<code>taxonomy => link_category</code>'));
        $taxonomy = $args['taxonomy'] = 'link_category';
    }
    $categories = (array) get_terms($taxonomy, $args);
    foreach (array_keys($categories) as $k) {
        _make_cat_compat($categories[$k]);
    }
    return $categories;
}

WordPress Version: 4.2

/**
 * WordPress Category API
 *
 * @package WordPress
 */
/**
 * Retrieve list of category objects.
 *
 * If you change the type to 'link' in the arguments, then the link categories
 * will be returned instead. Also all categories will be updated to be backwards
 * compatible with pre-2.3 plugins and themes.
 *
 * @since 2.1.0
 * @see get_terms() Type of arguments that can be changed.
 * @link https://codex.wordpress.org/Function_Reference/get_categories
 *
 * @param string|array $args Optional. Change the defaults retrieving categories.
 * @return array List of categories.
 */
function get_categories($args = '')
{
    $defaults = array('taxonomy' => 'category');
    $args = wp_parse_args($args, $defaults);
    $taxonomy = $args['taxonomy'];
    /**
     * Filter the taxonomy used to retrieve terms when calling {@see get_categories()}.
     *
     * @since 2.7.0
     *
     * @param string $taxonomy Taxonomy to retrieve terms from.
     * @param array  $args     An array of arguments. See {@see get_terms()}.
     */
    $taxonomy = apply_filters('get_categories_taxonomy', $taxonomy, $args);
    // Back compat
    if (isset($args['type']) && 'link' == $args['type']) {
        _deprecated_argument(__FUNCTION__, '3.0', '');
        $taxonomy = $args['taxonomy'] = 'link_category';
    }
    $categories = (array) get_terms($taxonomy, $args);
    foreach (array_keys($categories) as $k) {
        _make_cat_compat($categories[$k]);
    }
    return $categories;
}

WordPress Version: 4.1

/**
 * WordPress Category API
 *
 * @package WordPress
 */
/**
 * Retrieve list of category objects.
 *
 * If you change the type to 'link' in the arguments, then the link categories
 * will be returned instead. Also all categories will be updated to be backwards
 * compatible with pre-2.3 plugins and themes.
 *
 * @since 2.1.0
 * @see get_terms() Type of arguments that can be changed.
 * @link http://codex.wordpress.org/Function_Reference/get_categories
 *
 * @param string|array $args Optional. Change the defaults retrieving categories.
 * @return array List of categories.
 */
function get_categories($args = '')
{
    $defaults = array('taxonomy' => 'category');
    $args = wp_parse_args($args, $defaults);
    $taxonomy = $args['taxonomy'];
    /**
     * Filter the taxonomy used to retrieve terms when calling {@see get_categories()}.
     *
     * @since 2.7.0
     *
     * @param string $taxonomy Taxonomy to retrieve terms from.
     * @param array  $args     An array of arguments. See {@see get_terms()}.
     */
    $taxonomy = apply_filters('get_categories_taxonomy', $taxonomy, $args);
    // Back compat
    if (isset($args['type']) && 'link' == $args['type']) {
        _deprecated_argument(__FUNCTION__, '3.0', '');
        $taxonomy = $args['taxonomy'] = 'link_category';
    }
    $categories = (array) get_terms($taxonomy, $args);
    foreach (array_keys($categories) as $k) {
        _make_cat_compat($categories[$k]);
    }
    return $categories;
}

WordPress Version: 4.0

/**
 * WordPress Category API
 *
 * @package WordPress
 */
/**
 * Retrieve list of category objects.
 *
 * If you change the type to 'link' in the arguments, then the link categories
 * will be returned instead. Also all categories will be updated to be backwards
 * compatible with pre-2.3 plugins and themes.
 *
 * @since 2.1.0
 * @see get_terms() Type of arguments that can be changed.
 * @link http://codex.wordpress.org/Function_Reference/get_categories
 *
 * @param string|array $args Optional. Change the defaults retrieving categories.
 * @return array List of categories.
 */
function get_categories($args = '')
{
    $defaults = array('taxonomy' => 'category');
    $args = wp_parse_args($args, $defaults);
    $taxonomy = $args['taxonomy'];
    /**
     * Filter the taxonomy used to retrieve terms when calling get_categories().
     *
     * @since 2.7.0
     *
     * @param string $taxonomy Taxonomy to retrieve terms from.
     * @param array  $args     An array of arguments. @see get_terms()
     */
    $taxonomy = apply_filters('get_categories_taxonomy', $taxonomy, $args);
    // Back compat
    if (isset($args['type']) && 'link' == $args['type']) {
        _deprecated_argument(__FUNCTION__, '3.0', '');
        $taxonomy = $args['taxonomy'] = 'link_category';
    }
    $categories = (array) get_terms($taxonomy, $args);
    foreach (array_keys($categories) as $k) {
        _make_cat_compat($categories[$k]);
    }
    return $categories;
}

WordPress Version: 3.7

/**
 * Retrieve list of category objects.
 *
 * If you change the type to 'link' in the arguments, then the link categories
 * will be returned instead. Also all categories will be updated to be backwards
 * compatible with pre-2.3 plugins and themes.
 *
 * @since 2.1.0
 * @see get_terms() Type of arguments that can be changed.
 * @link http://codex.wordpress.org/Function_Reference/get_categories
 *
 * @param string|array $args Optional. Change the defaults retrieving categories.
 * @return array List of categories.
 */
function get_categories($args = '')
{
    $defaults = array('taxonomy' => 'category');
    $args = wp_parse_args($args, $defaults);
    $taxonomy = $args['taxonomy'];
    /**
     * Filter the taxonomy used to retrieve terms when calling get_categories().
     *
     * @since 2.7.0
     *
     * @param string $taxonomy Taxonomy to retrieve terms from.
     * @param array  $args     An array of arguments. @see get_terms()
     */
    $taxonomy = apply_filters('get_categories_taxonomy', $taxonomy, $args);
    // Back compat
    if (isset($args['type']) && 'link' == $args['type']) {
        _deprecated_argument(__FUNCTION__, '3.0', '');
        $taxonomy = $args['taxonomy'] = 'link_category';
    }
    $categories = (array) get_terms($taxonomy, $args);
    foreach (array_keys($categories) as $k) {
        _make_cat_compat($categories[$k]);
    }
    return $categories;
}