WordPress.org

Make WordPress Core

Ticket #5328: feed-filter.diff

File feed-filter.diff, 17.9 KB (added by rubys, 8 years ago)

second attempt to upload this patch

  • wp-includes/default-filters.php

     
    108108add_filter('single_post_title', 'wptexturize'); 
    109109 
    110110// RSS filters 
     111add_filter('feed_format', 'wp_feed_selector'); 
    111112add_filter('the_title_rss', 'strip_tags'); 
    112113add_filter('the_title_rss', 'ent2ncr', 8); 
    113114add_filter('the_title_rss', 'wp_specialchars'); 
  • 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); 
     
    255255        return apply_filters('feed_link', $output, $feed); 
    256256} 
    257257 
    258 function get_post_comments_feed_link($post_id = '', $feed = 'rss2') { 
     258function get_post_comments_feed_link($post_id = '', $feed = '') { 
    259259        global $id; 
    260260 
    261261        if ( empty($post_id) ) 
     
    263263 
    264264        if ( '' != get_option('permalink_structure') ) { 
    265265                $url = trailingslashit( get_permalink($post_id) ) . 'feed'; 
    266                 if ( 'rss2' != $feed ) 
     266                if ( ('' != $feed) && (get_default_feed() != $feed) ) 
    267267                        $url .= "/$feed"; 
    268268                $url = user_trailingslashit($url, 'single_feed'); 
    269269        } else { 
  • wp-includes/general-template.php

     
    8383                case 'description': 
    8484                        $output = get_option('blogdescription'); 
    8585                        break; 
     86                case 'feed_type_name': 
     87                        $output = get_feed_info( 'display_name' ); 
     88                        break; 
     89                case 'feed_type_short_name': 
     90                        $output = get_feed_info( 'short_name' ); 
     91                        break; 
     92                case 'feed_type_long_name': 
     93                        $output = get_feed_info( 'long_name' ); 
     94                        break; 
     95                case 'feed_mime_type': 
     96                        $output =  get_feed_info( 'mime_type' ); 
     97                        break; 
    8698                case 'rdf_url': 
    8799                        $output = get_feed_link('rdf'); 
    88100                        break; 
     
    92104                case 'rss2_url': 
    93105                        $output = get_feed_link('rss2'); 
    94106                        break; 
     107                case 'feed_url': 
     108                        return bloginfo(get_default_feed()."_url"); 
    95109                case 'atom_url': 
    96110                        $output = get_feed_link('atom'); 
    97111                        break; 
     112                case 'comments_feed_url': 
     113                        return bloginfo('comments_'.get_default_feed()."_url"); 
    98114                case 'comments_atom_url': 
    99115                        $output = get_feed_link('comments_atom'); 
    100116                        break; 
     
    195211 
    196212        if ( !empty($tag) ) { 
    197213                $tag = get_term($tag, 'post_tag', OBJECT, 'display'); 
    198                 if ( is_wp_error( $tag ) )  
     214                if ( is_wp_error( $tag ) ) 
    199215                        return $tag; 
    200216                if ( ! empty($tag->name) ) 
    201217                        $title = apply_filters('single_tag_title', $tag->name); 
     
    291307 
    292308        if ( !empty($tag_id) ) { 
    293309                $my_tag = &get_term($tag_id, 'post_tag', OBJECT, 'display'); 
    294                 if ( is_wp_error( $my_tag ) )  
     310                if ( is_wp_error( $my_tag ) ) 
    295311                        return false; 
    296312                $my_tag_name = apply_filters('single_tag_title', $my_tag->name); 
    297313                if ( !empty($my_tag_name) ) { 
     
    969985                                e = e ? e : window.event; 
    970986                                if (e.keyCode == 9 && !e.shiftKey && !e.controlKey && !e.altKey) { 
    971987                                        var i = tinyMCE.getInstanceById('<?php echo $id; ?>'); 
    972                                         if(typeof i ==  'undefined') 
     988                                        if(typeof i ==  'undefined') 
    973989                                                return true; 
    974990                                        tinyMCE.execCommand("mceStartTyping"); 
    975991                                        this.blur(); 
     
    983999                                e = e ? e : window.event; 
    9841000                                if (e.keyCode == 9 && !e.shiftKey && !e.controlKey && !e.altKey) { 
    9851001                                        var i = tinyMCE.getInstanceById('<?php echo $id; ?>'); 
    986                                         if(typeof i ==  'undefined') 
     1002                                        if(typeof i ==  'undefined') 
    9871003                                                return true; 
    9881004                                        tinyMCE.execCommand("mceStartTyping"); 
    9891005                                        this.blur(); 
     
    10421058        extract($args, EXTR_SKIP); 
    10431059 
    10441060        // Who knows what else people pass in $args 
    1045         $total    = (int) $total; 
     1061        $total    = (int) $total; 
    10461062        if ( $total < 2 ) 
    10471063                return; 
    10481064        $current  = (int) $current; 
  • wp-includes/feed.php

     
    11<?php 
    22 
     3/** 
     4 * get_default_feed() - determines the default feed format using the 
     5 * pluggable 'feed-format' filter. 
     6 * 
     7 * @package WordPress 
     8 * @subpackage Feed 
     9 * @since 2.4 
     10 * 
     11 * @return string $result feed format name (rss2, atom, rdf, rss) 
     12 */ 
     13function get_default_feed() { 
     14        return apply_filters('feed_format','name'); 
     15} 
     16  
     17/** 
     18 * get_feed_info() - retrieves the name, mime_type, display_name, short_name 
     19 * or long_name of the default feed type using the pluggable feed_format 
     20 * filter. 
     21 * 
     22 * @package WordPress 
     23 * @subpackage Feed 
     24 * @since 2.4 
     25 * 
     26 * @param string $attr desired feed attribute 
     27 * @return string $result the value of the desired feed attribute 
     28 */ 
     29function get_feed_info($attr) { 
     30        return apply_filters('feed_format',$attr); 
     31} 
     32  
     33/** 
     34 * wp_feed_selector() - the default 'feed_format' filter.  This one is 
     35 * selects rss2, others could select rss, rdf, or atom.  For the given 
     36 * feed type, a name, mime_type, display_name, short_name, or 
     37 * long_name may be obtained using this filter. 
     38 * 
     39 * Custom themes and plugin combinations could define additional 
     40 * attributes. 
     41 * 
     42 * @package WordPress 
     43 * @subpackage Feed 
     44 * @since 2.4 
     45 * 
     46 * @param string $attr desired feed attribute 
     47 * @return string $result the value of the desired feed attribute 
     48 */ 
     49function wp_feed_selector($attr = 'name') { 
     50        switch ( $attr ) : 
     51                case 'mime_type' : 
     52                        return 'application/rss+xml'; 
     53                case 'display_name' : 
     54                        return 'RSS 2.0'; 
     55                case 'short_name' : 
     56                        return 'RSS'; 
     57                case 'long_name' : 
     58                        return '<abbr title="Really Simple Syndication">RSS</abbr>'; 
     59                default : 
     60                        // must be 'rss2', 'rss', 'rdf', or 'atom' 
     61                        return 'rss2'; 
     62        endswitch; 
     63} 
     64 
    365function get_bloginfo_rss($show = '') { 
    466        $info = strip_tags(get_bloginfo($show)); 
    567        return apply_filters('get_bloginfo_rss', convert_chars($info)); 
     
    99161 
    100162 
    101163function comments_rss_link($link_text = 'Comments RSS', $commentsrssfilename = 'nolongerused') { 
     164        comments_feed_link($link_text); 
     165} 
     166 
     167function comments_feed_link($link_text = '') { 
     168        if ( '' == $link_text ) $link_text = get_feed_info('display_name'); 
    102169        $url = get_post_comments_feed_link(); 
    103170        echo "<a href='$url'>$link_text</a>"; 
    104171} 
    105172 
    106  
    107173function comments_rss($commentsrssfilename = 'nolongerused') { 
    108174        return get_post_comments_feed_link(); 
    109175} 
     
    114180        $permalink_structure = get_option('permalink_structure'); 
    115181 
    116182        if ( '' == $permalink_structure ) { 
    117                 $link = get_option('home') . '?feed=rss2&amp;author=' . $author_id; 
     183                $link = get_option('home') . '?feed='.get_default_feed().'&amp;author=' . $author_id; 
    118184        } else { 
    119185                $link = get_author_posts_url($author_id, $author_nicename); 
    120186                $link = trailingslashit($link) . user_trailingslashit('feed', 'feed'); 
     
    151217        $permalink_structure = get_option('permalink_structure'); 
    152218 
    153219        if ( '' == $permalink_structure ) { 
    154                 $link = get_option('home') . "?feed=$feed&amp;cat=" . $cat_id; 
     220                $link = get_option('home') . '?feed='.get_default_feed()."&amp;cat=" . $cat_ID; 
    155221        } else { 
    156222                $link = get_category_link($cat_id); 
    157223                if( 'rss2' == $feed ) 
     
    215281        echo get_the_category_rss($type); 
    216282} 
    217283 
    218 function get_tag_feed_link($tag_id, $feed = 'rss2') { 
     284function get_tag_feed_link($tag_id, $feed = '') { 
    219285        $tag_id = (int) $tag_id; 
     286        if ( $feed = '' ) $feed = get_default_feed(); 
    220287 
    221288        $tag = get_tag($tag_id); 
    222289 
     
    229296                $link = get_option('home') . "?feed=$feed&amp;tag=" . $tag->slug; 
    230297        } else { 
    231298                $link = get_tag_link($tag->term_id); 
    232                 if ( 'rss2' == $feed ) 
     299                if ( get_default_feed() == $feed ) 
    233300                        $feed_link = 'feed'; 
    234301                else 
    235302                        $feed_link = "feed/$feed"; 
     
    292359 * 
    293360 * @package WordPress 
    294361 * @subpackage Feed 
    295  * @since 2.4  
     362 * @since 2.4 
    296363 * 
    297364 * @param string $data input string 
    298365 * @return array $result array(type, value) 
     
    311378        if (!$code) { 
    312379                       if (strpos($data, '<') === false) { 
    313380                               return array('text', $data); 
    314                        } else { 
     381                       } else { 
    315382                               $data = "<div xmlns='http://www.w3.org/1999/xhtml'>$data</div>"; 
    316383                               return array('xhtml', $data); 
    317                        } 
     384                       } 
    318385        } 
    319386 
    320387        if (strpos($data, ']]>') == false) { 
  • wp-includes/functions.php

     
    9595        // see http://en.wikipedia.org/wiki/Byte 
    9696        $quant = array( 
    9797                // ========================= Origin ==== 
    98                 'TB' => 1099511627776,  // pow( 1024, 4) 
    99                 'GB' => 1073741824,     // pow( 1024, 3) 
    100                 'MB' => 1048576,        // pow( 1024, 2) 
    101                 'kB' => 1024,           // pow( 1024, 1) 
    102                 'B ' => 1,              // pow( 1024, 0) 
     98                'TB' => 1099511627776,  // pow( 1024, 4) 
     99                'GB' => 1073741824,     // pow( 1024, 3) 
     100                'MB' => 1048576,        // pow( 1024, 2) 
     101                'kB' => 1024,           // pow( 1024, 1) 
     102                'B ' => 1,              // pow( 1024, 0) 
    103103        ); 
    104104 
    105105        foreach ( $quant as $unit => $mag ) 
     
    404404 
    405405 
    406406function gzip_compression() { 
    407         if ( !get_option( 'gzipcompression' ) || ini_get( 'zlib.output_compression' ) == 'On' || ini_get( 'zlib.output_compression_level' ) > 0  || ini_get( 'output_handler' ) == 'ob_gzhandler' || !extension_loaded( 'zlib' ) ) 
     407        if ( !get_option( 'gzipcompression' ) || ini_get( 'zlib.output_compression' ) == 'On' || ini_get( 'zlib.output_compression_level' ) > 0  || ini_get( 'output_handler' ) == 'ob_gzhandler' || !extension_loaded( 'zlib' ) ) 
    408408                return false; 
    409409        ob_start( 'ob_gzhandler' ); 
    410410} 
     
    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 ); 
     
    911911function is_blog_installed() { 
    912912        global $wpdb; 
    913913 
    914         // Check cache first.  If options table goes away and we have true cached, oh well.   
     914        // Check cache first.  If options table goes away and we have true cached, oh well. 
    915915        if ( wp_cache_get('is_blog_installed') ) 
    916916                return true; 
    917917 
     
    11671167                $trans['add']['bookmark']      = array( __( 'Are you sure you want to add this link?' ), false ); 
    11681168                $trans['delete']['bookmark']   = array( __( 'Are you sure you want to delete this link: &quot;%s&quot;?' ), 'use_id' ); 
    11691169                $trans['update']['bookmark']   = array( __( 'Are you sure you want to edit this link: &quot;%s&quot;?' ), 'use_id' ); 
    1170                 $trans['bulk']['bookmarks']    = array( __( 'Are you sure you want to bulk modify links?' ), false );  
     1170                $trans['bulk']['bookmarks']    = array( __( 'Are you sure you want to bulk modify links?' ), false ); 
    11711171 
    1172                 $trans['add']['page']          = array( __( 'Are you sure you want to add this page?' ), false ); 
     1172                $trans['add']['page']          = array( __( 'Are you sure you want to add this page?' ), false ); 
    11731173                $trans['delete']['page']       = array( __( 'Are you sure you want to delete this page: &quot;%s&quot;?' ), 'get_the_title' ); 
    11741174                $trans['update']['page']       = array( __( 'Are you sure you want to edit this page: &quot;%s&quot;?' ), 'get_the_title' ); 
    11751175 
     
    11771177                $trans['activate']['plugin']   = array( __( 'Are you sure you want to activate this plugin: &quot;%s&quot;?' ), 'use_id' ); 
    11781178                $trans['deactivate']['plugin'] = array( __( 'Are you sure you want to deactivate this plugin: &quot;%s&quot;?' ), 'use_id' ); 
    11791179 
    1180                 $trans['add']['post']          = array( __( 'Are you sure you want to add this post?' ), false ); 
     1180                $trans['add']['post']          = array( __( 'Are you sure you want to add this post?' ), false ); 
    11811181                $trans['delete']['post']       = array( __( 'Are you sure you want to delete this post: &quot;%s&quot;?' ), 'get_the_title' ); 
    11821182                $trans['update']['post']       = array( __( 'Are you sure you want to edit this post: &quot;%s&quot;?' ), 'get_the_title' ); 
    11831183 
    1184                 $trans['add']['user']          = array( __( 'Are you sure you want to add this user?' ), false ); 
     1184                $trans['add']['user']          = array( __( 'Are you sure you want to add this user?' ), false ); 
    11851185                $trans['delete']['users']      = array( __( 'Are you sure you want to delete users?' ), false ); 
    1186                 $trans['bulk']['users']        = array( __( 'Are you sure you want to bulk modify users?' ), false ); 
     1186                $trans['bulk']['users']        = array( __( 'Are you sure you want to bulk modify users?' ), false ); 
    11871187                $trans['update']['user']       = array( __( 'Are you sure you want to edit this user: &quot;%s&quot;?' ), 'get_author_name' ); 
    11881188                $trans['update']['profile']    = array( __( 'Are you sure you want to modify the profile for: &quot;%s&quot;?' ), 'get_author_name' ); 
    11891189 
    11901190                $trans['update']['options']    = array( __( 'Are you sure you want to edit your settings?' ), false ); 
    11911191                $trans['update']['permalink']  = array( __( 'Are you sure you want to change your permalink structure to: %s?' ), 'use_id' ); 
    1192                 $trans['edit']['file']         = array( __( 'Are you sure you want to edit this file: &quot;%s&quot;?' ), 'use_id' ); 
    1193                 $trans['edit']['theme']        = array( __( 'Are you sure you want to edit this theme file: &quot;%s&quot;?' ), 'use_id' ); 
     1192                $trans['edit']['file']         = array( __( 'Are you sure you want to edit this file: &quot;%s&quot;?' ), 'use_id' ); 
     1193                $trans['edit']['theme']        = array( __( 'Are you sure you want to edit this theme file: &quot;%s&quot;?' ), 'use_id' ); 
    11941194                $trans['switch']['theme']      = array( __( 'Are you sure you want to switch to this theme: &quot;%s&quot;?' ), 'use_id' ); 
    11951195 
    11961196                if ( isset( $trans[$verb][$noun] ) ) { 
     
    12191219 
    12201220        $title = __( 'WordPress Confirmation' ); 
    12211221        // Remove extra layer of slashes. 
    1222         $_POST  = stripslashes_deep( $_POST ); 
     1222        $_POST  = stripslashes_deep( $_POST ); 
    12231223        if ( $_POST ) { 
    12241224                $q = http_build_query( $_POST ); 
    12251225                $q = explode( ini_get( 'arg_separator.output' ), $q); 
     
    12641264                $message = "<p>$message</p>"; 
    12651265        } 
    12661266 
    1267         if ( defined( 'WP_SITEURL' ) && '' != WP_SITEURL )  
    1268                 $admin_dir = WP_SITEURL . '/wp-admin/';  
     1267        if ( defined( 'WP_SITEURL' ) && '' != WP_SITEURL ) 
     1268                $admin_dir = WP_SITEURL . '/wp-admin/'; 
    12691269        elseif ( function_exists( 'get_bloginfo' ) && '' != get_bloginfo( 'wpurl' ) ) 
    1270                 $admin_dir = get_bloginfo( 'wpurl' ) . '/wp-admin/';  
     1270                $admin_dir = get_bloginfo( 'wpurl' ) . '/wp-admin/'; 
    12711271        elseif ( strpos( $_SERVER['PHP_SELF'], 'wp-admin' ) !== false ) 
    12721272                $admin_dir = ''; 
    12731273        else 
     
    14841484        return abs( intval( $maybeint ) ); 
    14851485} 
    14861486 
    1487 ?> 
    1488  No newline at end of file 
     1487?> 
  • wp-content/themes/default/footer.php

     
    55        <p> 
    66                <?php bloginfo('name'); ?> is proudly powered by 
    77                <a href="http://wordpress.org/">WordPress</a> 
    8                 <br /><a href="<?php bloginfo('rss2_url'); ?>">Entries (RSS)</a> 
    9                 and <a href="<?php bloginfo('comments_rss2_url'); ?>">Comments (RSS)</a>. 
     8                <br /><a href="<?php bloginfo('feed_url'); ?>">Entries (<?php bloginfo('feed_type_short_name'); ?>)</a> 
     9                and <a href="<?php bloginfo('comments_feed_url'); ?>">Comments (<?php bloginfo('feed_type_short_name'); ?>)</a>. 
    1010                <!-- <?php echo get_num_queries(); ?> queries. <?php timer_stop(1); ?> seconds. --> 
    1111        </p> 
    1212</div> 
  • wp-content/themes/default/single.php

     
    2727                                                        /* $entry_datetime = abs(strtotime($post->post_date) - (60*120)); echo time_since($entry_datetime); echo ' ago'; */ ?> 
    2828                                                on <?php the_time('l, F jS, Y') ?> at <?php the_time() ?> 
    2929                                                and is filed under <?php the_category(', ') ?>. 
    30                                                 You can follow any responses to this entry through the <?php comments_rss_link('RSS 2.0'); ?> feed. 
     30                                                You can follow any responses to this entry through the <?php comments_feed_link(); ?> feed. 
    3131 
    3232                                                <?php if (('open' == $post-> comment_status) && ('open' == $post->ping_status)) { 
    3333                                                        // Both Comments and Pings are open ?> 
  • wp-content/themes/default/header.php

     
    77<title><?php bloginfo('name'); ?> <?php if ( is_single() ) { ?> &raquo; Blog Archive <?php } ?> <?php wp_title(); ?></title> 
    88 
    99<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" /> 
    10 <link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" /> 
     10<link rel="alternate" type="<?php bloginfo('feed_mime_type'); ?>" title="<?php bloginfo('name'); ?> <?php bloginfo('feed_type_short_name'); ?> Feed" href="<?php bloginfo('feed_url'); ?>" /> 
    1111<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" /> 
    1212 
    1313<style type="text/css" media="screen"> 
  • wp-content/themes/default/attachment.php

     
    2828                                                        /* $entry_datetime = abs(strtotime($post->post_date) - (60*120)); echo time_since($entry_datetime); echo ' ago'; */ ?> 
    2929                                                on <?php the_time('l, F jS, Y') ?> at <?php the_time() ?> 
    3030                                                and is filed under <?php the_category(', ') ?>. 
    31                                                 You can follow any responses to this entry through the <?php comments_rss_link('RSS 2.0'); ?> feed. 
     31                                                You can follow any responses to this entry through the <?php comments_feed_link(); ?> feed. 
    3232 
    3333                                                <?php if (('open' == $post-> comment_status) && ('open' == $post->ping_status)) { 
    3434                                                        // Both Comments and Pings are open ?>