WordPress.org

Make WordPress Core

Ticket #4967: 4967.patch

File 4967.patch, 7.0 KB (added by peaceablewhale, 6 years ago)
  • feed-rss.php

     
    44 * 
    55 * @package WordPress 
    66 */ 
    7  
    8 header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true); 
    9 $more = 1; 
    10  
    11 echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?> 
    12 <?php the_generator( 'comment' ); ?> 
     7  
     8$obsolete_rss092=apply_filters("obsolete_rss092",true); 
     9if($obsolete_rss092==true): 
     10        $feed_type="rss2"; 
     11        if(is_category()) { 
     12                $link=get_category_feed_link($wp_query->get_queried_object_id(),$feed_type,false); 
     13        } 
     14        elseif(is_tag()) { 
     15                $link=get_tag_feed_link($wp_query->get_queried_object_id(),$feed_type,false); 
     16        } 
     17        elseif(is_author()) { 
     18                $link=get_author_feed_link($wp_query->get_queried_object_id(),$feed_type,false); 
     19        } 
     20        elseif(is_search()) { 
     21                $link=get_search_feed_link($wp_query->get_queried_object_id(),$feed_type,false); 
     22        } 
     23        else { 
     24                $link=get_feed_link($feed_type); 
     25        } 
     26        wp_redirect($link,301); 
     27else: 
     28        header('Content-Type: ' . feed_content_type('rss-http') . '; charset=' . get_option('blog_charset'), true); 
     29        $more = 1; 
     30        echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; the_generator( 'comment' ); ?> 
    1331<rss version="0.92"> 
    1432<channel> 
    1533        <title><?php bloginfo_rss('name'); wp_title_rss(); ?></title> 
     
    3452<?php endwhile; ?> 
    3553</channel> 
    3654</rss> 
     55<?php endif; ?> 
     56 No newline at end of file 
  • link-template.php

     
    397397 * @param string $feed Optional. Feed type. 
    398398 * @return string 
    399399 */ 
    400 function get_post_comments_feed_link($post_id = '', $feed = '') { 
     400function get_post_comments_feed_link($post_id = '', $feed = '', $escape = true) { 
    401401        global $id; 
    402402 
    403403        if ( empty($post_id) ) 
     
    414414        } else { 
    415415                $type = get_post_field('post_type', $post_id); 
    416416                if ( 'page' == $type ) 
    417                         $url = trailingslashit(get_option('home')) . "?feed=$feed&amp;page_id=$post_id"; 
     417                        $url = trailingslashit(get_option('home')) . "?feed=$feed&page_id=$post_id"; 
    418418                else 
    419                         $url = trailingslashit(get_option('home')) . "?feed=$feed&amp;p=$post_id"; 
     419                        $url = trailingslashit(get_option('home')) . "?feed=$feed&p=$post_id"; 
    420420        } 
    421  
     421        if($escape == true) { 
     422                $url = esc_url($url); 
     423        } 
    422424        return apply_filters('post_comments_feed_link', $url); 
    423425} 
    424426 
     
    438440 * @param string $feed Optional. Feed format. 
    439441 * @return string Link to the comment feed for the current post. 
    440442*/ 
    441 function post_comments_feed_link( $link_text = '', $post_id = '', $feed = '' ) { 
    442         $url = get_post_comments_feed_link($post_id, $feed); 
     443function post_comments_feed_link( $link_text = '', $post_id = '', $feed = '', $escape = true) { 
     444        $url = get_post_comments_feed_link($post_id, $feed, $escape); 
    443445        if ( empty($link_text) ) 
    444446                $link_text = __('Comments Feed'); 
    445447 
     
    460462 * @param string $feed Optional. Feed type. 
    461463 * @return string Link to the feed for the author specified by $author_id. 
    462464*/ 
    463 function get_author_feed_link( $author_id, $feed = '' ) { 
     465function get_author_feed_link( $author_id, $feed = '', $escape = true) { 
    464466        $author_id = (int) $author_id; 
    465467        $permalink_structure = get_option('permalink_structure'); 
    466468 
     
    468470                $feed = get_default_feed(); 
    469471 
    470472        if ( '' == $permalink_structure ) { 
    471                 $link = trailingslashit(get_option('home')) . "?feed=$feed&amp;author=" . $author_id; 
     473                $link = trailingslashit(get_option('home')) . "?feed=$feed&author=" . $author_id; 
    472474        } else { 
    473475                $link = get_author_posts_url($author_id); 
    474476                if ( $feed == get_default_feed() ) 
     
    478480 
    479481                $link = trailingslashit($link) . user_trailingslashit($feed_link, 'feed'); 
    480482        } 
    481  
     483        if($escape == true) { 
     484                $link = esc_url($link); 
     485        } 
    482486        $link = apply_filters('author_feed_link', $link, $feed); 
    483487 
    484488        return $link; 
     
    498502 * @param string $feed Optional. Feed type. 
    499503 * @return string Link to the feed for the category specified by $cat_id. 
    500504*/ 
    501 function get_category_feed_link($cat_id, $feed = '') { 
     505function get_category_feed_link($cat_id, $feed = '', $escape = true) { 
    502506        $cat_id = (int) $cat_id; 
    503507 
    504508        $category = get_category($cat_id); 
     
    512516        $permalink_structure = get_option('permalink_structure'); 
    513517 
    514518        if ( '' == $permalink_structure ) { 
    515                 $link = trailingslashit(get_option('home')) . "?feed=$feed&amp;cat=" . $cat_id; 
     519                $link = trailingslashit(get_option('home')) . "?feed=$feed&cat=" . $cat_id; 
    516520        } else { 
    517521                $link = get_category_link($cat_id); 
    518522                if( $feed == get_default_feed() ) 
     
    522526 
    523527                $link = trailingslashit($link) . user_trailingslashit($feed_link, 'feed'); 
    524528        } 
    525  
     529        if($escape == true) { 
     530                $link = esc_url($link); 
     531        } 
    526532        $link = apply_filters('category_feed_link', $link, $feed); 
    527533 
    528534        return $link; 
     
    537543 * @param string $feed Optional. Feed type. 
    538544 * @return string 
    539545 */ 
    540 function get_tag_feed_link($tag_id, $feed = '') { 
     546function get_tag_feed_link($tag_id, $feed = '', $escape = true) { 
    541547        $tag_id = (int) $tag_id; 
    542548 
    543549        $tag = get_tag($tag_id); 
     
    551557                $feed = get_default_feed(); 
    552558 
    553559        if ( '' == $permalink_structure ) { 
    554                 $link = trailingslashit(get_option('home')) . "?feed=$feed&amp;tag=" . $tag->slug; 
     560                $link = trailingslashit(get_option('home')) . "?feed=$feed&tag=" . $tag->slug; 
    555561        } else { 
    556562                $link = get_tag_link($tag->term_id); 
    557563                if ( $feed == get_default_feed() ) 
     
    560566                        $feed_link = "feed/$feed"; 
    561567                $link = trailingslashit($link) . user_trailingslashit($feed_link, 'feed'); 
    562568        } 
    563  
     569        if($escape == true) { 
     570                $link = esc_url($link); 
     571        } 
    564572        $link = apply_filters('tag_feed_link', $link, $feed); 
    565573 
    566574        return $link; 
     
    617625 * @param string $feed Optional. Feed type. 
    618626 * @return string 
    619627 */ 
    620 function get_search_feed_link($search_query = '', $feed = '') { 
     628function get_search_feed_link($search_query = '', $feed = '', $escape = true) { 
    621629        if ( empty($search_query) ) 
    622630                $search = esc_attr(get_search_query()); 
    623631        else 
     
    626634        if ( empty($feed) ) 
    627635                $feed = get_default_feed(); 
    628636 
    629         $link = trailingslashit(get_option('home')) . "?s=$search&amp;feed=$feed"; 
    630  
     637        $link = trailingslashit(get_option('home')) . "?s=$search&feed=$feed"; 
     638        if($escape == true) { 
     639                $link = esc_url($link); 
     640        } 
    631641        $link = apply_filters('search_feed_link', $link); 
    632642 
    633643        return $link; 
     
    642652 * @param string $feed Optional. Feed type. 
    643653 * @return string 
    644654 */ 
    645 function get_search_comments_feed_link($search_query = '', $feed = '') { 
     655function get_search_comments_feed_link($search_query = '', $feed = '', $escape = true) { 
    646656        if ( empty($search_query) ) 
    647657                $search = esc_attr(get_search_query()); 
    648658        else 
     
    651661        if ( empty($feed) ) 
    652662                $feed = get_default_feed(); 
    653663 
    654         $link = trailingslashit(get_option('home')) . "?s=$search&amp;feed=comments-$feed"; 
    655  
     664        $link = trailingslashit(get_option('home')) . "?s=$search&feed=comments-$feed"; 
     665        if($escape == true) { 
     666                $link = esc_url($link); 
     667        } 
    656668        $link = apply_filters('search_feed_link', $link); 
    657669 
    658670        return $link;