Codex

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

Customizing Feeds

If terms like feed, syndication, and RSS make your head spin, stop right now and read an Introduction to Syndication. That will give you a good overview of feeds and syndication. We have an article on WordPress Feeds to help you understand the basics, if you need them, but from here on, this article assumes that you know the basics of what feeds are and how they are used.

Customized feeds give your readers more information about you and your blog: you can include the names of additional collaborators on your blog posts, or a link to your Friend-of-a-Friend file. Contrariwise, it can also help you restrict the information available for syndication, by removing extraneous data or providing a machine-readable version of your copyright statement.

How WordPress Produces Feeds

WordPress uses a set of feed templates to display your site's feeds, in much the same way as it uses theme templates to display your content. These feed templates are located in the wp-includes WordPress directory. These core files are not directly compatible with the Theme system, however it is possible to use custom page templates to achieve a theme-based solution (see further information and links below) or change which templates are used.

The following feed templates are included with WordPress:

feed-rss2.php 
Displays your entries in RSS 2.0 format.
feed-rss.php 
Displays your entries in RSS 0.92 format.
feed-rdf.php 
Displays your entries in RDF/RSS 1.0 format
feed-atom.php 
Displays your entries in Atom format.
feed-atom-comments.php 
Displays comments - either the most recent comments on all posts, or the comments on a specific post - in Atom format.
feed-rss2-comments.php 
Displays comments - either the most recent comments on all posts, or the comments on a specific post - in RSS 2.0 format.

Customizing Your Feeds

There are a variety of ways to customize your feeds, through the use of third-party software you install and add-on to your WordPress site, or by manually changing the feed templates to meet your needs.

Customizing Feed Templates

Editing your feed templates is much the same as editing your theme templates. However, feed templates are not integrated into the WordPress theme system; if you would like different versions of your feeds, you'll need to create extra feed templates.

The Feed templates are located in the /wp-includes/feed-{type}.php files and include formats for rdf, rss, rss2 and atom. They are triggered by feed rewrite rules using a series of actions defined in wp-includes/functions.php and attached using add_action in wp-includes/default-filters.php.

In order to override with your own templates it will be required to clear the default actions, then take appropriate steps to call get_template_part.

An example of using a template for the default RSS2 feed as well as a custom post type named "photos":

/**
 * Deal with the custom RSS templates.
 */
function my_custom_rss() {

	if ( 'photos' === get_query_var( 'post_type' ) ) {
		get_template_part( 'feed', 'photos' );
	} else {
		get_template_part( 'feed', 'rss2' );
	}
}
remove_all_actions( 'do_feed_rss2' );
add_action( 'do_feed_rss2', 'my_custom_rss', 10, 1 );

Many specialized template tags exist specifically to format your content in a way that complies with the RSS standards. They include:

Third-Party Software

Some third-party web services can help you manage and customize your feeds. Using such services can be a simple way to do things like counting the number of people who read your feed, or combining your blog's feed with your Flickr photostream.

Such services include:

Checking Your New Feed

To see your new feed, you can use any of the many feed readers available on the Internet. While your feed might look good to you in the different readers, it might still have problems.

Feed formats are designed to be read and manipulated by machines; errors in your feed template can make your feed unreadable to some or all feedreaders. So after you make all your changes, it's a good idea to check that your feed meets the relevant standards. Validation services include:

More Information and Resources