WordPress.org

Make WordPress Core

Ticket #13058: 13058.diff

File 13058.diff, 3.2 KB (added by blepoxp, 5 years ago)

Fixes rss link for custom taxonomies

  • wp-includes/link-template.php

     
    568568 * @return string Link to the feed for the category specified by $cat_id. 
    569569*/ 
    570570function get_category_feed_link($cat_id, $feed = '') { 
    571         $cat_id = (int) $cat_id; 
     571        return get_taxonomy_feed_link($cat_id, 'category', $feed); 
     572} 
    572573 
    573         $category = get_category($cat_id); 
     574/** 
     575 * Retrieve the feed link for a taxonomy. 
     576 * 
     577 * Returns a link to the feed for all post in a given taxonomy. A specific feed 
     578 * can be requested or left blank to get the default feed. 
     579 * 
     580 * @package WordPress 
     581 * @subpackage Feed 
     582 * @since 3.0 
     583 * 
     584 * @param int $term_id ID of a category. 
     585 * @param string $taxonomy Optional. Taxonomy of $term_id 
     586 * @param string $feed Optional. Feed type. 
     587 * @return string Link to the feed for the taxonomy specified by $term_id and $taxonomy. 
     588*/ 
     589function get_taxonomy_feed_link($term_id, $taxonomy='category', $feed = '') { 
     590        $term_id = (int) $term_id; 
    574591 
    575         if ( empty($category) || is_wp_error($category) ) 
     592        $term = get_term($term_id, $taxonomy); 
     593         
     594        if ( empty($term) || is_wp_error($term) ) 
    576595                return false; 
    577596 
    578597        if ( empty($feed) ) 
     
    581600        $permalink_structure = get_option('permalink_structure'); 
    582601 
    583602        if ( '' == $permalink_structure ) { 
    584                 $link = home_url("?feed=$feed&cat=" . $cat_id); 
     603                if ( 'category' == $taxonomy ){ 
     604                        $link = home_url("?feed=$feed&cat=" . $term_id); 
     605                }else{ 
     606                        $link = home_url("?feed=$feed&".$term->taxonomy."=".$term->slug); 
     607                } 
    585608        } else { 
    586                 $link = get_category_link($cat_id); 
     609                $link = get_term_link($term_id,$term->taxonomy); 
    587610                if( $feed == get_default_feed() ) 
    588611                        $feed_link = 'feed'; 
    589612                else 
     
    592615                $link = trailingslashit($link) . user_trailingslashit($feed_link, 'feed'); 
    593616        } 
    594617 
    595         $link = apply_filters('category_feed_link', $link, $feed); 
     618        if ( 'category' == $taxonomy ){ 
     619                $link = apply_filters('category_feed_link', $link, $feed); 
     620        }else{ 
     621                $link = apply_filters('taxonomy_feed_link', $link, $feed, $taxonomy); 
     622        } 
    596623 
    597624        return $link; 
    598625} 
  • wp-includes/classes.php

     
    14521452                        if ( empty($feed_image) ) 
    14531453                                $link .= '('; 
    14541454 
    1455                         $link .= '<a href="' . get_category_feed_link($category->term_id, $feed_type) . '"'; 
     1455                        $link .= '<a href="' . get_taxonomy_feed_link($category->term_id, $category->taxonomy, $feed_type) . '"'; 
    14561456 
    14571457                        if ( empty($feed) ) 
    14581458                                $alt = ' alt="' . sprintf(__( 'Feed for all posts filed under %s' ), $cat_name ) . '"'; 
  • xmlrpc.php

     
    27342734                                $struct['categoryDescription'] = $cat->description; 
    27352735                                $struct['categoryName'] = $cat->name; 
    27362736                                $struct['htmlUrl'] = esc_html(get_category_link($cat->term_id)); 
    2737                                 $struct['rssUrl'] = esc_html(get_category_feed_link($cat->term_id, 'rss2')); 
     2737                                $struct['rssUrl'] = esc_html(get_category_feed_link($cat->term_id, $cat->taxonomy, 'rss2')); 
    27382738 
    27392739                                $categories_struct[] = $struct; 
    27402740                        }