WordPress.org

Make WordPress Core

Ticket #4967: 4967.patch

File 4967.patch, 7.0 KB (added by peaceablewhale, 9 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;