get_the_category_rss

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

WordPress Version: 6.1

/**
 * Retrieves all of the post categories, formatted for use in feeds.
 *
 * All of the categories for the current post in the feed loop, will be
 * retrieved and have feed markup added, so that they can easily be added to the
 * RSS2, Atom, or RSS1 and RSS0.91 RDF feeds.
 *
 * @since 2.1.0
 *
 * @param string $type Optional, default is the type returned by get_default_feed().
 * @return string All of the post categories for displaying in the feed.
 */
function get_the_category_rss($type = null)
{
    if (empty($type)) {
        $type = get_default_feed();
    }
    $categories = get_the_category();
    $tags = get_the_tags();
    $the_list = '';
    $cat_names = array();
    $filter = 'rss';
    if ('atom' === $type) {
        $filter = 'raw';
    }
    if (!empty($categories)) {
        foreach ((array) $categories as $category) {
            $cat_names[] = sanitize_term_field('name', $category->name, $category->term_id, 'category', $filter);
        }
    }
    if (!empty($tags)) {
        foreach ((array) $tags as $tag) {
            $cat_names[] = sanitize_term_field('name', $tag->name, $tag->term_id, 'post_tag', $filter);
        }
    }
    $cat_names = array_unique($cat_names);
    foreach ($cat_names as $cat_name) {
        if ('rdf' === $type) {
            $the_list .= "\t\t<dc:subject><![CDATA[{$cat_name}]]></dc:subject>\n";
        } elseif ('atom' === $type) {
            $the_list .= sprintf('<category scheme="%1$s" term="%2$s" />', esc_attr(get_bloginfo_rss('url')), esc_attr($cat_name));
        } else {
            $the_list .= "\t\t<category><![CDATA[" . html_entity_decode($cat_name, ENT_COMPAT, get_option('blog_charset')) . "]]></category>\n";
        }
    }
    /**
     * Filters all of the post categories for display in a feed.
     *
     * @since 1.2.0
     *
     * @param string $the_list All of the RSS post categories.
     * @param string $type     Type of feed. Possible values include 'rss2', 'atom'.
     *                         Default 'rss2'.
     */
    return apply_filters('the_category_rss', $the_list, $type);
}

WordPress Version: 5.5

/**
 * Retrieve all of the post categories, formatted for use in feeds.
 *
 * All of the categories for the current post in the feed loop, will be
 * retrieved and have feed markup added, so that they can easily be added to the
 * RSS2, Atom, or RSS1 and RSS0.91 RDF feeds.
 *
 * @since 2.1.0
 *
 * @param string $type Optional, default is the type returned by get_default_feed().
 * @return string All of the post categories for displaying in the feed.
 */
function get_the_category_rss($type = null)
{
    if (empty($type)) {
        $type = get_default_feed();
    }
    $categories = get_the_category();
    $tags = get_the_tags();
    $the_list = '';
    $cat_names = array();
    $filter = 'rss';
    if ('atom' === $type) {
        $filter = 'raw';
    }
    if (!empty($categories)) {
        foreach ((array) $categories as $category) {
            $cat_names[] = sanitize_term_field('name', $category->name, $category->term_id, 'category', $filter);
        }
    }
    if (!empty($tags)) {
        foreach ((array) $tags as $tag) {
            $cat_names[] = sanitize_term_field('name', $tag->name, $tag->term_id, 'post_tag', $filter);
        }
    }
    $cat_names = array_unique($cat_names);
    foreach ($cat_names as $cat_name) {
        if ('rdf' === $type) {
            $the_list .= "\t\t<dc:subject><![CDATA[{$cat_name}]]></dc:subject>\n";
        } elseif ('atom' === $type) {
            $the_list .= sprintf('<category scheme="%1$s" term="%2$s" />', esc_attr(get_bloginfo_rss('url')), esc_attr($cat_name));
        } else {
            $the_list .= "\t\t<category><![CDATA[" . html_entity_decode($cat_name, ENT_COMPAT, get_option('blog_charset')) . "]]></category>\n";
        }
    }
    /**
     * Filters all of the post categories for display in a feed.
     *
     * @since 1.2.0
     *
     * @param string $the_list All of the RSS post categories.
     * @param string $type     Type of feed. Possible values include 'rss2', 'atom'.
     *                         Default 'rss2'.
     */
    return apply_filters('the_category_rss', $the_list, $type);
}

WordPress Version: 5.3

/**
 * Retrieve all of the post categories, formatted for use in feeds.
 *
 * All of the categories for the current post in the feed loop, will be
 * retrieved and have feed markup added, so that they can easily be added to the
 * RSS2, Atom, or RSS1 and RSS0.91 RDF feeds.
 *
 * @since 2.1.0
 *
 * @param string $type Optional, default is the type returned by get_default_feed().
 * @return string All of the post categories for displaying in the feed.
 */
function get_the_category_rss($type = null)
{
    if (empty($type)) {
        $type = get_default_feed();
    }
    $categories = get_the_category();
    $tags = get_the_tags();
    $the_list = '';
    $cat_names = array();
    $filter = 'rss';
    if ('atom' == $type) {
        $filter = 'raw';
    }
    if (!empty($categories)) {
        foreach ((array) $categories as $category) {
            $cat_names[] = sanitize_term_field('name', $category->name, $category->term_id, 'category', $filter);
        }
    }
    if (!empty($tags)) {
        foreach ((array) $tags as $tag) {
            $cat_names[] = sanitize_term_field('name', $tag->name, $tag->term_id, 'post_tag', $filter);
        }
    }
    $cat_names = array_unique($cat_names);
    foreach ($cat_names as $cat_name) {
        if ('rdf' == $type) {
            $the_list .= "\t\t<dc:subject><![CDATA[{$cat_name}]]></dc:subject>\n";
        } elseif ('atom' == $type) {
            $the_list .= sprintf('<category scheme="%1$s" term="%2$s" />', esc_attr(get_bloginfo_rss('url')), esc_attr($cat_name));
        } else {
            $the_list .= "\t\t<category><![CDATA[" . html_entity_decode($cat_name, ENT_COMPAT, get_option('blog_charset')) . "]]></category>\n";
        }
    }
    /**
     * Filters all of the post categories for display in a feed.
     *
     * @since 1.2.0
     *
     * @param string $the_list All of the RSS post categories.
     * @param string $type     Type of feed. Possible values include 'rss2', 'atom'.
     *                         Default 'rss2'.
     */
    return apply_filters('the_category_rss', $the_list, $type);
}

WordPress Version: 4.6

/**
 * Retrieve all of the post categories, formatted for use in feeds.
 *
 * All of the categories for the current post in the feed loop, will be
 * retrieved and have feed markup added, so that they can easily be added to the
 * RSS2, Atom, or RSS1 and RSS0.91 RDF feeds.
 *
 * @since 2.1.0
 *
 * @param string $type Optional, default is the type returned by get_default_feed().
 * @return string All of the post categories for displaying in the feed.
 */
function get_the_category_rss($type = null)
{
    if (empty($type)) {
        $type = get_default_feed();
    }
    $categories = get_the_category();
    $tags = get_the_tags();
    $the_list = '';
    $cat_names = array();
    $filter = 'rss';
    if ('atom' == $type) {
        $filter = 'raw';
    }
    if (!empty($categories)) {
        foreach ((array) $categories as $category) {
            $cat_names[] = sanitize_term_field('name', $category->name, $category->term_id, 'category', $filter);
        }
    }
    if (!empty($tags)) {
        foreach ((array) $tags as $tag) {
            $cat_names[] = sanitize_term_field('name', $tag->name, $tag->term_id, 'post_tag', $filter);
        }
    }
    $cat_names = array_unique($cat_names);
    foreach ($cat_names as $cat_name) {
        if ('rdf' == $type) {
            $the_list .= "\t\t<dc:subject><![CDATA[{$cat_name}]]></dc:subject>\n";
        } elseif ('atom' == $type) {
            $the_list .= sprintf('<category scheme="%1$s" term="%2$s" />', esc_attr(get_bloginfo_rss('url')), esc_attr($cat_name));
        } else {
            $the_list .= "\t\t<category><![CDATA[" . @html_entity_decode($cat_name, ENT_COMPAT, get_option('blog_charset')) . "]]></category>\n";
        }
    }
    /**
     * Filters all of the post categories for display in a feed.
     *
     * @since 1.2.0
     *
     * @param string $the_list All of the RSS post categories.
     * @param string $type     Type of feed. Possible values include 'rss2', 'atom'.
     *                         Default 'rss2'.
     */
    return apply_filters('the_category_rss', $the_list, $type);
}

WordPress Version: 4.0

/**
 * Retrieve all of the post categories, formatted for use in feeds.
 *
 * All of the categories for the current post in the feed loop, will be
 * retrieved and have feed markup added, so that they can easily be added to the
 * RSS2, Atom, or RSS1 and RSS0.91 RDF feeds.
 *
 * @since 2.1.0
 *
 * @param string $type Optional, default is the type returned by get_default_feed().
 * @return string All of the post categories for displaying in the feed.
 */
function get_the_category_rss($type = null)
{
    if (empty($type)) {
        $type = get_default_feed();
    }
    $categories = get_the_category();
    $tags = get_the_tags();
    $the_list = '';
    $cat_names = array();
    $filter = 'rss';
    if ('atom' == $type) {
        $filter = 'raw';
    }
    if (!empty($categories)) {
        foreach ((array) $categories as $category) {
            $cat_names[] = sanitize_term_field('name', $category->name, $category->term_id, 'category', $filter);
        }
    }
    if (!empty($tags)) {
        foreach ((array) $tags as $tag) {
            $cat_names[] = sanitize_term_field('name', $tag->name, $tag->term_id, 'post_tag', $filter);
        }
    }
    $cat_names = array_unique($cat_names);
    foreach ($cat_names as $cat_name) {
        if ('rdf' == $type) {
            $the_list .= "\t\t<dc:subject><![CDATA[{$cat_name}]]></dc:subject>\n";
        } elseif ('atom' == $type) {
            $the_list .= sprintf('<category scheme="%1$s" term="%2$s" />', esc_attr(get_bloginfo_rss('url')), esc_attr($cat_name));
        } else {
            $the_list .= "\t\t<category><![CDATA[" . @html_entity_decode($cat_name, ENT_COMPAT, get_option('blog_charset')) . "]]></category>\n";
        }
    }
    /**
     * Filter all of the post categories for display in a feed.
     *
     * @since 1.2.0
     *
     * @param string $the_list All of the RSS post categories.
     * @param string $type     Type of feed. Possible values include 'rss2', 'atom'.
     *                         Default 'rss2'.
     */
    return apply_filters('the_category_rss', $the_list, $type);
}

WordPress Version: 3.9

/**
 * Retrieve all of the post categories, formatted for use in feeds.
 *
 * All of the categories for the current post in the feed loop, will be
 * retrieved and have feed markup added, so that they can easily be added to the
 * RSS2, Atom, or RSS1 and RSS0.91 RDF feeds.
 *
 * @since 2.1.0
 *
 * @param string $type Optional, default is the type returned by get_default_feed().
 * @return string All of the post categories for displaying in the feed.
 */
function get_the_category_rss($type = null)
{
    if (empty($type)) {
        $type = get_default_feed();
    }
    $categories = get_the_category();
    $tags = get_the_tags();
    $the_list = '';
    $cat_names = array();
    $filter = 'rss';
    if ('atom' == $type) {
        $filter = 'raw';
    }
    if (!empty($categories)) {
        foreach ((array) $categories as $category) {
            $cat_names[] = sanitize_term_field('name', $category->name, $category->term_id, 'category', $filter);
        }
    }
    if (!empty($tags)) {
        foreach ((array) $tags as $tag) {
            $cat_names[] = sanitize_term_field('name', $tag->name, $tag->term_id, 'post_tag', $filter);
        }
    }
    $cat_names = array_unique($cat_names);
    foreach ($cat_names as $cat_name) {
        if ('rdf' == $type) {
            $the_list .= "\t\t<dc:subject><![CDATA[{$cat_name}]]></dc:subject>\n";
        } elseif ('atom' == $type) {
            /** This filter is documented in wp-includes/feed.php */
            $the_list .= sprintf('<category scheme="%1$s" term="%2$s" />', esc_attr(apply_filters('get_bloginfo_rss', get_bloginfo('url'))), esc_attr($cat_name));
        } else {
            $the_list .= "\t\t<category><![CDATA[" . @html_entity_decode($cat_name, ENT_COMPAT, get_option('blog_charset')) . "]]></category>\n";
        }
    }
    /**
     * Filter all of the post categories for display in a feed.
     *
     * @since 1.2.0
     *
     * @param string $the_list All of the RSS post categories.
     * @param string $type     Type of feed. Possible values include 'rss2', 'atom'.
     *                         Default 'rss2'.
     */
    return apply_filters('the_category_rss', $the_list, $type);
}

WordPress Version: 3.7

/**
 * Retrieve all of the post categories, formatted for use in feeds.
 *
 * All of the categories for the current post in the feed loop, will be
 * retrieved and have feed markup added, so that they can easily be added to the
 * RSS2, Atom, or RSS1 and RSS0.91 RDF feeds.
 *
 * @package WordPress
 * @subpackage Feed
 * @since 2.1.0
 * @uses apply_filters()
 *
 * @param string $type Optional, default is the type returned by get_default_feed().
 * @return string All of the post categories for displaying in the feed.
 */
function get_the_category_rss($type = null)
{
    if (empty($type)) {
        $type = get_default_feed();
    }
    $categories = get_the_category();
    $tags = get_the_tags();
    $the_list = '';
    $cat_names = array();
    $filter = 'rss';
    if ('atom' == $type) {
        $filter = 'raw';
    }
    if (!empty($categories)) {
        foreach ((array) $categories as $category) {
            $cat_names[] = sanitize_term_field('name', $category->name, $category->term_id, 'category', $filter);
        }
    }
    if (!empty($tags)) {
        foreach ((array) $tags as $tag) {
            $cat_names[] = sanitize_term_field('name', $tag->name, $tag->term_id, 'post_tag', $filter);
        }
    }
    $cat_names = array_unique($cat_names);
    foreach ($cat_names as $cat_name) {
        if ('rdf' == $type) {
            $the_list .= "\t\t<dc:subject><![CDATA[{$cat_name}]]></dc:subject>\n";
        } elseif ('atom' == $type) {
            $the_list .= sprintf('<category scheme="%1$s" term="%2$s" />', esc_attr(apply_filters('get_bloginfo_rss', get_bloginfo('url'))), esc_attr($cat_name));
        } else {
            $the_list .= "\t\t<category><![CDATA[" . @html_entity_decode($cat_name, ENT_COMPAT, get_option('blog_charset')) . "]]></category>\n";
        }
    }
    return apply_filters('the_category_rss', $the_list, $type);
}