WordPress.org

Make WordPress Core

Ticket #5328: default_feed.diff

File default_feed.diff, 11.7 KB (added by ryan, 11 years ago)
  • wp-includes/link-template.php

     
    226226        }
    227227}
    228228
    229 function get_feed_link($feed='rss2') {
     229function get_feed_link($feed = '') {
    230230        global $wp_rewrite;
    231231        $do_perma = 0;
    232232        $feed_url = get_option('siteurl');
     
    239239                        $permalink = $wp_rewrite->get_comment_feed_permastruct();
    240240                }
    241241
    242                 if ( 'rss2' == $feed )
     242                if ( get_default_feed() == $feed )
    243243                        $feed = '';
    244244
    245245                $permalink = str_replace('%feed%', $feed, $permalink);
    246246                $permalink = preg_replace('#/+#', '/', "/$permalink");
    247247                $output =  get_option('home') . user_trailingslashit($permalink, 'feed');
    248248        } else {
     249                if ( empty($feed) )
     250                        $feed = get_default_feed();
     251
    249252                if ( false !== strpos($feed, 'comments_') )
    250253                        $feed = str_replace('comments_', 'comments-', $feed);
    251254
     
    255258        return apply_filters('feed_link', $output, $feed);
    256259}
    257260
    258 function get_post_comments_feed_link($post_id = '', $feed = 'rss2') {
     261function get_post_comments_feed_link($post_id = '', $feed = '') {
    259262        global $id;
    260263
    261264        if ( empty($post_id) )
    262265                $post_id = (int) $id;
    263266
     267        if ( empty($feed) )
     268                $feed = get_default_feed();
     269
    264270        if ( '' != get_option('permalink_structure') ) {
    265271                $url = trailingslashit( get_permalink($post_id) ) . 'feed';
    266                 if ( 'rss2' != $feed )
     272                if ( $feed != get_default_feed() )
    267273                        $url .= "/$feed";
    268274                $url = user_trailingslashit($url, 'single_feed');
    269275        } else {
     
    277283        return apply_filters('post_comments_feed_link', $url);
    278284}
    279285
     286/** post_comments_feed_link() - Output the comment feed link for a post.
     287 *
     288 * Prints out the comment feed link for a post.  Link text is placed in the
     289 * anchor.  If no link text is specified, default text is used.  If no post ID
     290 * is specified, the current post is used.
     291 *
     292 * @package WordPress
     293 * @subpackage Feed
     294 * @since 2.4
     295 *
     296 * @param string Descriptive text
     297 * @param int Optional post ID.  Default to current post.
     298 * @return string Link to the comment feed for the current post
     299*/
     300function post_comments_feed_link( $link_text = '', $post_id = '', $feed = '' ) {
     301        $url = get_post_comments_feed_link($post_id, $feed);
     302        if ( empty($link_text) )
     303                $link_text = __('Comments Feed');
     304
     305        echo "<a href='$url'>$link_text</a>";
     306}
     307
     308function get_author_feed_link( $author_id, $feed = '' ) {
     309        $author_id = (int) $author_id;
     310        $permalink_structure = get_option('permalink_structure');
     311
     312        if ( empty($feed) )
     313                $feed = get_default_feed();
     314
     315        if ( '' == $permalink_structure ) {
     316                $link = get_option('home') . '?feed=rss2&amp;author=' . $author_id;
     317        } else {
     318                $link = get_author_posts_url($author_id, $author_nicename);
     319                $link = trailingslashit($link) . user_trailingslashit('feed', 'feed');
     320        }
     321
     322        $link = apply_filters('author_feed_link', $link);
     323
     324        return $link;
     325}
     326
     327/** get_category_feed_link() - Get the feed link for a given category
     328 *
     329 * Returns a link to the feed for all post in a given category.  A specific feed can be requested
     330 * or left blank to get the default feed.
     331 *
     332 * @package WordPress
     333 * @subpackage Feed
     334 * @since 2.4
     335 *
     336 * @param int $cat_id ID of a category
     337 * @param string $feed Feed type
     338 * @return string Link to the feed for the category specified by $cat_id
     339*/
     340function get_category_feed_link($cat_id, $feed = '') {
     341        $cat_id = (int) $cat_id;
     342       
     343        $category = get_category($cat_id);
     344       
     345        if ( empty($category) || is_wp_error($category) )
     346                return false;
     347
     348        if ( empty($feed) )
     349                $feed = get_default_feed();
     350
     351        $permalink_structure = get_option('permalink_structure');
     352
     353        if ( '' == $permalink_structure ) {
     354                $link = get_option('home') . "?feed=$feed&amp;cat=" . $cat_id;
     355        } else {
     356                $link = get_category_link($cat_id);
     357                if( $feed == get_default_feed() )
     358                        $feed_link = 'feed';
     359                else
     360                        $feed_link = "feed/$feed";
     361               
     362                $link = trailingslashit($link) . user_trailingslashit($feed_link, 'feed');
     363        }
     364
     365        $link = apply_filters('category_feed_link', $link, $feed);
     366       
     367        return $link;
     368}
     369
     370function get_tag_feed_link($tag_id, $feed = '') {
     371        $tag_id = (int) $tag_id;
     372
     373        $tag = get_tag($tag_id);
     374
     375        if ( empty($tag) || is_wp_error($tag) )
     376                return false;
     377
     378        $permalink_structure = get_option('permalink_structure');
     379
     380        if ( empty($feed) )
     381                $feed = get_default_feed();
     382
     383        if ( '' == $permalink_structure ) {
     384                $link = get_option('home') . "?feed=$feed&amp;tag=" . $tag->slug;
     385        } else {
     386                $link = get_tag_link($tag->term_id);
     387                if ( $feed == get_default_feed() )
     388                        $feed_link = 'feed';
     389                else
     390                        $feed_link = "feed/$feed";
     391                $link = $link . user_trailingslashit($feed_link, 'feed');
     392        }
     393
     394        $link = apply_filters('tag_feed_link', $link, $feed);
     395
     396        return $link;
     397}
     398
    280399function get_edit_post_link( $id = 0 ) {
    281400        $post = &get_post( $id );
    282401
  • wp-includes/author-template.php

     
    366366        $defaults = array(
    367367                'optioncount' => false, 'exclude_admin' => true,
    368368                'show_fullname' => false, 'hide_empty' => true,
    369                 'feed' => '', 'feed_image' => '', 'echo' => true
     369                'feed' => '', 'feed_image' => '', 'feed_type' => '', 'echo' => true
    370370        );
    371371
    372372        $r = wp_parse_args( $args, $defaults );
  • wp-includes/classes.php

     
    599599                        if ( empty($feed_image) )
    600600                                $link .= '(';
    601601
    602                         $link .= '<a href="' . get_category_rss_link( 0, $category->term_id, $category->slug ) . '"';
     602                        $link .= '<a href="' . get_category_feed_link($category->term_id, $feed_type) . '"';
    603603
    604604                        if ( empty($feed) )
    605605                                $alt = ' alt="' . sprintf(__( 'Feed for all posts filed under %s' ), $cat_name ) . '"';
  • wp-includes/deprecated.php

     
    729729        return $cat->name;
    730730}
    731731
     732
     733function comments_rss_link($link_text = 'Comments RSS', $commentsrssfilename = 'nolongerused') {
     734        post_comments_feed_link($link_text);
     735}
     736
     737function get_category_rss_link($echo = false, $cat_ID, $category_nicename) {
     738        $link = get_category_feed_link($cat_ID, $feed = 'rss2');
     739
     740        if ( $echo )
     741                echo $link;
     742        return $link;
     743}
     744
     745function get_author_rss_link($echo = false, $author_id, $author_nicename) {
     746        $link = get_author_feed_link($author_id);
     747        if ( $echo )
     748                echo $link;
     749        return $link;
     750}
     751
    732752?>
     753 No newline at end of file
  • wp-includes/feed.php

     
    55        return apply_filters('get_bloginfo_rss', convert_chars($info));
    66}
    77
    8 
    98function bloginfo_rss($show = '') {
    109        echo apply_filters('bloginfo_rss', get_bloginfo_rss($show));
    1110}
    1211
     12function get_default_feed() {
     13        return apply_filters('default_feed', 'rss2');
     14}
     15
    1316function get_wp_title_rss($sep = '&#187;') {
    1417        $title = wp_title($sep, false);
    1518        if ( is_wp_error( $title ) )
     
    97100        echo $comment_text;
    98101}
    99102
    100 
    101 function comments_rss_link($link_text = 'Comments RSS', $commentsrssfilename = 'nolongerused') {
    102         $url = get_post_comments_feed_link();
    103         echo "<a href='$url'>$link_text</a>";
    104 }
    105 
    106 
    107103function comments_rss($commentsrssfilename = 'nolongerused') {
    108104        return get_post_comments_feed_link();
    109105}
    110106
    111 
    112 function get_author_rss_link($echo = false, $author_id, $author_nicename) {
    113         $auth_ID = (int) $author_id;
    114         $permalink_structure = get_option('permalink_structure');
    115 
    116         if ( '' == $permalink_structure ) {
    117                 $link = get_option('home') . '?feed=rss2&amp;author=' . $author_id;
    118         } else {
    119                 $link = get_author_posts_url($author_id, $author_nicename);
    120                 $link = trailingslashit($link) . user_trailingslashit('feed', 'feed');
    121         }
    122 
    123         $link = apply_filters('author_feed_link', $link);
    124 
    125         if ( $echo )
    126                 echo $link;
    127         return $link;
    128 }
    129 
    130 /** get_category_feed_link() - Get the feed link for a given category
    131  *
    132  * Returns a link to the feed for all post in a given category.  A specific feed can be requested
    133  * or left blank to get the default feed.
    134  *
    135  * @package WordPress
    136  * @subpackage Feed
    137  * @since 2.4
    138  *
    139  * @param int $cat_id ID of a category
    140  * @param string $feed Feed type
    141  * @return string Link to the feed for the category specified by $cat_id
    142 */
    143 function get_category_feed_link($cat_id, $feed = 'rss2') {
    144         $cat_id = (int) $cat_id;
    145        
    146         $category = get_category($cat_id);
    147        
    148         if ( empty($category) || is_wp_error($category) )
    149                 return false;
    150        
    151         $permalink_structure = get_option('permalink_structure');
    152 
    153         if ( '' == $permalink_structure ) {
    154                 $link = get_option('home') . "?feed=$feed&amp;cat=" . $cat_id;
    155         } else {
    156                 $link = get_category_link($cat_id);
    157                 if( 'rss2' == $feed )
    158                         $feed_link = 'feed';
    159                 else
    160                         $feed_link = "feed/$feed";
    161                
    162                 $link = trailingslashit($link) . user_trailingslashit($feed_link, 'feed');
    163         }
    164 
    165         $link = apply_filters('category_feed_link', $link, $feed);
    166        
    167         return $link;
    168 }
    169 
    170 
    171 function get_category_rss_link($echo = false, $cat_ID, $category_nicename) {
    172         $link = get_category_feed_link($cat_ID, $feed = 'rss2');
    173 
    174         if ( $echo )
    175                 echo $link;
    176         return $link;
    177 }
    178 
    179 
    180107function get_the_category_rss($type = 'rss') {
    181108        $categories = get_the_category();
    182109        $tags = get_the_tags();
     
    215142        echo get_the_category_rss($type);
    216143}
    217144
    218 function get_tag_feed_link($tag_id, $feed = 'rss2') {
    219         $tag_id = (int) $tag_id;
    220 
    221         $tag = get_tag($tag_id);
    222 
    223         if ( empty($tag) || is_wp_error($tag) )
    224                 return false;
    225 
    226         $permalink_structure = get_option('permalink_structure');
    227 
    228         if ( '' == $permalink_structure ) {
    229                 $link = get_option('home') . "?feed=$feed&amp;tag=" . $tag->slug;
    230         } else {
    231                 $link = get_tag_link($tag->term_id);
    232                 if ( 'rss2' == $feed )
    233                         $feed_link = 'feed';
    234                 else
    235                         $feed_link = "feed/$feed";
    236                 $link = $link . user_trailingslashit($feed_link, 'feed');
    237         }
    238 
    239         $link = apply_filters('tag_feed_link', $link, $feed);
    240 
    241         return $link;
    242 }
    243 
    244145function html_type_rss() {
    245146        $type = get_bloginfo('html_type');
    246147        if (strpos($type, 'xhtml') !== false)
  • wp-includes/functions.php

     
    861861        $feed = preg_replace( '/^_+/', '', $feed );
    862862
    863863        if ( $feed == '' || $feed == 'feed' )
    864                 $feed = 'rss2';
     864                $feed = get_default_feed();
    865865
    866866        $hook = 'do_feed_' . $feed;
    867867        do_action( $hook, $wp_query->is_comment_feed );
  • wp-includes/category-template.php

     
    247247                'order' => 'ASC', 'show_last_update' => 0,
    248248                'style' => 'list', 'show_count' => 0,
    249249                'hide_empty' => 1, 'use_desc_for_title' => 1,
    250                 'child_of' => 0, 'feed' => '',
     250                'child_of' => 0, 'feed' => '', 'feed_type' => '',
    251251                'feed_image' => '', 'exclude' => '',
    252252                'hierarchical' => true, 'title_li' => __('Categories'),
    253253                'echo' => 1
  • wp-content/themes/default/sidebar.php

     
    5151                                </ul>
    5252                        </li>
    5353
    54                         <?php wp_list_categories('show_count=1&title_li=<h2>Categories</h2>'); ?>
     54                        <?php wp_list_categories('show_count=1&feed=Atom&feed_type=atom&title_li=<h2>Categories</h2>'); ?>
    5555
    5656                        <?php /* If this is the frontpage */ if ( is_home() || is_page() ) { ?>
    5757                                <?php wp_list_bookmarks(); ?>