Add support for automatic feed links in themes, props Viper007Bond, see #8878
git-svn-id: https://develop.svn.wordpress.org/trunk@10377 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
2a684445e6
commit
19577d0a8d
@ -3,6 +3,9 @@
|
|||||||
* @package WordPress
|
* @package WordPress
|
||||||
* @subpackage Classic_Theme
|
* @subpackage Classic_Theme
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
automatic_feed_links();
|
||||||
|
|
||||||
if ( function_exists('register_sidebar') )
|
if ( function_exists('register_sidebar') )
|
||||||
register_sidebar(array(
|
register_sidebar(array(
|
||||||
'before_widget' => '<li id="%1$s" class="widget %2$s">',
|
'before_widget' => '<li id="%1$s" class="widget %2$s">',
|
||||||
|
@ -16,10 +16,6 @@
|
|||||||
@import url( <?php bloginfo('stylesheet_url'); ?> );
|
@import url( <?php bloginfo('stylesheet_url'); ?> );
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="<?php bloginfo('rss2_url'); ?>" />
|
|
||||||
<link rel="alternate" type="text/xml" title="RSS .92" href="<?php bloginfo('rss_url'); ?>" />
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="<?php bloginfo('atom_url'); ?>" />
|
|
||||||
|
|
||||||
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
|
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
|
||||||
<?php wp_get_archives('type=monthly&format=link'); ?>
|
<?php wp_get_archives('type=monthly&format=link'); ?>
|
||||||
<?php //comments_popup_script(); // off by default ?>
|
<?php //comments_popup_script(); // off by default ?>
|
||||||
|
@ -4,13 +4,16 @@
|
|||||||
* @subpackage Default_Theme
|
* @subpackage Default_Theme
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if ( function_exists('register_sidebar') )
|
automatic_feed_links();
|
||||||
register_sidebar(array(
|
|
||||||
'before_widget' => '<li id="%1$s" class="widget %2$s">',
|
if ( function_exists('register_sidebar') ) {
|
||||||
'after_widget' => '</li>',
|
register_sidebar(array(
|
||||||
'before_title' => '<h2 class="widgettitle">',
|
'before_widget' => '<li id="%1$s" class="widget %2$s">',
|
||||||
'after_title' => '</h2>',
|
'after_widget' => '</li>',
|
||||||
));
|
'before_title' => '<h2 class="widgettitle">',
|
||||||
|
'after_title' => '</h2>',
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
/** @ignore */
|
/** @ignore */
|
||||||
function kubrick_head() {
|
function kubrick_head() {
|
||||||
|
@ -13,8 +13,6 @@
|
|||||||
<title><?php wp_title('«', true, 'right'); ?> <?php bloginfo('name'); ?></title>
|
<title><?php wp_title('«', true, 'right'); ?> <?php bloginfo('name'); ?></title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
|
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />
|
||||||
<link rel="alternate" type="application/rss+xml" title="<?php bloginfo('name'); ?> RSS Feed" href="<?php bloginfo('rss2_url'); ?>" />
|
|
||||||
<link rel="alternate" type="application/atom+xml" title="<?php bloginfo('name'); ?> Atom Feed" href="<?php bloginfo('atom_url'); ?>" />
|
|
||||||
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
|
<link rel="pingback" href="<?php bloginfo('pingback_url'); ?>" />
|
||||||
|
|
||||||
<style type="text/css" media="screen">
|
<style type="text/css" media="screen">
|
||||||
|
@ -164,6 +164,7 @@ add_filter( 'editable_slug', 'urldecode' );
|
|||||||
add_filter('atom_service_url','atom_service_url_filter');
|
add_filter('atom_service_url','atom_service_url_filter');
|
||||||
|
|
||||||
// Actions
|
// Actions
|
||||||
|
add_action('wp_head', 'feed_links_extra', 3);
|
||||||
add_action('wp_head', 'rsd_link');
|
add_action('wp_head', 'rsd_link');
|
||||||
add_action('wp_head', 'wlwmanifest_link');
|
add_action('wp_head', 'wlwmanifest_link');
|
||||||
add_action('wp_head', 'locale_stylesheet');
|
add_action('wp_head', 'locale_stylesheet');
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* @package WordPress
|
* @package WordPress
|
||||||
*/
|
*/
|
||||||
|
|
||||||
header('Content-Type: application/atom+xml; charset=' . get_option('blog_charset'), true);
|
header('Content-Type: ' . feed_content_type('atom') . '; charset=' . get_option('blog_charset'), true);
|
||||||
echo '<?xml version="1.0" encoding="' . get_option('blog_charset') . '" ?' . '>';
|
echo '<?xml version="1.0" encoding="' . get_option('blog_charset') . '" ?' . '>';
|
||||||
?>
|
?>
|
||||||
<feed
|
<feed
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* @package WordPress
|
* @package WordPress
|
||||||
*/
|
*/
|
||||||
|
|
||||||
header('Content-Type: application/atom+xml; charset=' . get_option('blog_charset'), true);
|
header('Content-Type: ' . feed_content_type('atom') . '; charset=' . get_option('blog_charset'), true);
|
||||||
$more = 1;
|
$more = 1;
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* @package WordPress
|
* @package WordPress
|
||||||
*/
|
*/
|
||||||
|
|
||||||
header('Content-Type: application/rdf+xml; charset=' . get_option('blog_charset'), true);
|
header('Content-Type: ' . feed_content_type('rdf') . '; charset=' . get_option('blog_charset'), true);
|
||||||
$more = 1;
|
$more = 1;
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* @package WordPress
|
* @package WordPress
|
||||||
*/
|
*/
|
||||||
|
|
||||||
header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
|
header('Content-Type: ' . feed_content_type('rss') . '; charset=' . get_option('blog_charset'), true);
|
||||||
$more = 1;
|
$more = 1;
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* @package WordPress
|
* @package WordPress
|
||||||
*/
|
*/
|
||||||
|
|
||||||
header('Content-Type: text/xml;charset=' . get_option('blog_charset'), true);
|
header('Content-Type: ' . feed_content_type('rss2') . '; charset=' . get_option('blog_charset'), true);
|
||||||
|
|
||||||
echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';
|
echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>';
|
||||||
?>
|
?>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* @package WordPress
|
* @package WordPress
|
||||||
*/
|
*/
|
||||||
|
|
||||||
header('Content-Type: text/xml; charset=' . get_option('blog_charset'), true);
|
header('Content-Type: ' . feed_content_type('rss2') . '; charset=' . get_option('blog_charset'), true);
|
||||||
$more = 1;
|
$more = 1;
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
@ -508,4 +508,27 @@ function self_link() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the content type for specified feed type.
|
||||||
|
*
|
||||||
|
* @package WordPress
|
||||||
|
* @subpackage Feed
|
||||||
|
* @since 2.8.0
|
||||||
|
*/
|
||||||
|
function feed_content_type( $type = '' ) {
|
||||||
|
if ( empty($type) )
|
||||||
|
$type = get_default_feed();
|
||||||
|
|
||||||
|
$types = array(
|
||||||
|
'rss' => 'application/rss+xml',
|
||||||
|
'rss2' => 'application/rss+xml',
|
||||||
|
'atom' => 'application/atom+xml',
|
||||||
|
'rdf' => 'application/rdf+xml',
|
||||||
|
);
|
||||||
|
|
||||||
|
$content_type = ( !empty($types[$type]) ) ? $types[$type] : 'application/octet-stream';
|
||||||
|
|
||||||
|
return apply_filters( 'feed_content_type', $content_type, $type );
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
@ -1368,6 +1368,88 @@ function wp_footer() {
|
|||||||
do_action('wp_footer');
|
do_action('wp_footer');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enable/disable automatic general feed link outputting.
|
||||||
|
*
|
||||||
|
* @since 2.8.0
|
||||||
|
*
|
||||||
|
* @param boolean $add Add or remove links. Defaults to true.
|
||||||
|
*/
|
||||||
|
function automatic_feed_links( $add = true ) {
|
||||||
|
if ( $add )
|
||||||
|
add_action( 'wp_head', 'feed_links', 2 );
|
||||||
|
else {
|
||||||
|
remove_action( 'wp_head', 'feed_links', 2 );
|
||||||
|
remove_action( 'wp_head', 'feed_links_extra', 3 );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the links to the general feeds.
|
||||||
|
*
|
||||||
|
* @since 2.8.0
|
||||||
|
*
|
||||||
|
* @param array $args Optional arguments.
|
||||||
|
*/
|
||||||
|
function feed_links( $args ) {
|
||||||
|
$defaults = array(
|
||||||
|
'seperator' => _c('»|Seperator character feed titles in theme head'),
|
||||||
|
'rsstitle' => __('%s Feed'),
|
||||||
|
'comstitle' => __('%s Comments Feed'),
|
||||||
|
);
|
||||||
|
|
||||||
|
$args = wp_parse_args( $args, $defaults );
|
||||||
|
|
||||||
|
echo '<link rel="alternate" type="' . feed_content_type() . '" title="' . sprintf( $args['rsstitle'], get_bloginfo('name') ) . '" href="' . get_feed_link() . "\" />\n";
|
||||||
|
echo '<link rel="alternate" type="' . feed_content_type() . '" title="' . sprintf( $args['comstitle'], get_bloginfo('name') ) . '" href="' . get_feed_link( 'comments_' . get_default_feed() ) . "\" />\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the links to the extra feeds such as category feeds.
|
||||||
|
*
|
||||||
|
* @since 2.8.0
|
||||||
|
*
|
||||||
|
* @param array $args Optional arguments.
|
||||||
|
*/
|
||||||
|
function feed_links_extra( $args ) {
|
||||||
|
$defaults = array(
|
||||||
|
'seperator' => _c('»|Seperator character feed titles in theme head'),
|
||||||
|
'singletitle' => __('%1$s %2$s %3$s Comments Feed'),
|
||||||
|
'cattitle' => __('%1$s %2$s %3$s Category Feed'),
|
||||||
|
'tagtitle' => __('%1$s %2$s %3$s Tag Feed'),
|
||||||
|
'authortitle' => __('%1$s %2$s Posts by %3$s Feed'),
|
||||||
|
'searchtitle' => __('%1$s %2$s Search Results for "%3$s" Feed'),
|
||||||
|
);
|
||||||
|
|
||||||
|
$args = wp_parse_args( $args, $defaults );
|
||||||
|
|
||||||
|
if ( is_single() || is_page() ) {
|
||||||
|
$post = &get_post( $id = 0 );
|
||||||
|
if ( comments_open() || pings_open() || $post->comment_count > 0 )
|
||||||
|
echo '<link rel="alternate" type="' . feed_content_type() . '" title="' . sprintf( $args['singletitle'], get_bloginfo('name'), $args['seperator'], get_the_title() ) . '" href="' . get_post_comments_feed_link( $post->ID ) . "\" />\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
elseif ( is_category() ) {
|
||||||
|
$cat_id = intval( get_query_var('cat') );
|
||||||
|
echo '<link rel="alternate" type="' . feed_content_type() . '" title="' . sprintf( $args['cattitle'], get_bloginfo('name'), $args['seperator'], get_cat_name( $cat_id ) ) . '" href="' . get_category_feed_link( $cat_id ) . "\" />\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
elseif ( is_tag() ) {
|
||||||
|
$tag_id = intval( get_query_var('tag_id') );
|
||||||
|
$tag = get_tag( $tag_id );
|
||||||
|
echo '<link rel="alternate" type="' . feed_content_type() . '" title="' . sprintf( $args['tagtitle'], get_bloginfo('name'), $args['seperator'], $tag->name ) . '" href="' . get_tag_feed_link( $tag_id ) . "\" />\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
elseif ( is_author() ) {
|
||||||
|
$author_id = intval( get_query_var('author') );
|
||||||
|
echo '<link rel="alternate" type="' . feed_content_type() . '" title="' . sprintf( $args['authortitle'], get_bloginfo('name'), $args['seperator'], get_author_name( $author_id ) ) . '" href="' . get_author_feed_link( $author_id ) . "\" />\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
elseif ( is_search() ) {
|
||||||
|
echo '<link rel="alternate" type="' . feed_content_type() . '" title="' . sprintf( $args['searchtitle'], get_bloginfo('name'), $args['seperator'], get_search_query() ) . '" href="' . get_search_feed_link() . "\" />\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Display the link to the Really Simple Discovery service endpoint.
|
* Display the link to the Really Simple Discovery service endpoint.
|
||||||
*
|
*
|
||||||
|
@ -507,7 +507,7 @@ function get_category_feed_link($cat_id, $feed = '') {
|
|||||||
$permalink_structure = get_option('permalink_structure');
|
$permalink_structure = get_option('permalink_structure');
|
||||||
|
|
||||||
if ( '' == $permalink_structure ) {
|
if ( '' == $permalink_structure ) {
|
||||||
$link = get_option('home') . "?feed=$feed&cat=" . $cat_id;
|
$link = trailingslashit( get_option('home') ) . "?feed=$feed&cat=" . $cat_id;
|
||||||
} else {
|
} else {
|
||||||
$link = get_category_link($cat_id);
|
$link = get_category_link($cat_id);
|
||||||
if( $feed == get_default_feed() )
|
if( $feed == get_default_feed() )
|
||||||
|
Loading…
Reference in New Issue
Block a user