WordPress.org

Make WordPress Core

Ticket #5328: feed-filter.diff

File feed-filter.diff, 17.9 KB (added by rubys, 11 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 ?>