Legacy Documentation
You are using the documentation for version 4.3.8. Go here for the latest version.
RSS¶
Introduction¶
The main purpose of the RSS tag is to render the top portion of the feed containing the name of the author, the character encoding, etc., while the main channel tag renders the actual rows.
The RSS Module Tag is intended to be used in conjunction with the Channel Entries Tag. The entire RSS feed is enclosed between the following tags:
{exp:rss:feed}
{/exp:rss:feed}
Parameters¶
If you use any of the following parameters, you will probably want to mirror the same settings for your {exp:channel:entries} tag contained inside the RSS tag.
show_expired=¶
show_expired="yes"
You can determine whether you wish for entries that have “expired” to be included.
show_future_entries=¶
show_future_entries="yes"
You can determine whether you wish for entries dated in the “future” to be included. This option is useful when doing things like creating a list of events, some of which have not occurred yet. Note that EE will still display past entries; this parameter simply instructs EE to also include entries from the future.
status=¶
status="open"
You may restrict to a particular status. You can choose multiple statuses using a pipe:
status="draft|reviewed|published"
Or exclude statuses using “not”
status="not submitted|processing|closed"
username=¶
username="petunia"
This parameter limits the query by username. You can use the pipe character to query by multiple usernames
username="tom|dick|harry"
Or you can add “not” to exclude usernames
username="not tom|dick|harry|fred"
You can also use the constant “CURRENT_USER” to show entries from only the currently logged in user.
username="CURRENT_USER"
This allow each logged-in user to get only their entries. Users who are not logged in won’t see anything. Alternatively, you can use the constant “NOT_CURRENT_USER” to show entries except from the currently logged in user.
username="NOT_CURRENT_USER"
Variables¶
channel_url¶
{channel_url}
The URL associated with the channel as set in the “Channel URL” preference under Channel Administration.
date¶
{date format="%Y %m %d"}
The date on which the last entry was submitted. See Date Variable Formatting for more information.
edit_date¶
{edit_date format="%Y %m %d"}
The date on which the entry was last edited. See Date Variable Formatting for more information.
gmt_entry_date¶
{gmt_entry_date format="%Y %m %d"}
The date the entry was submitted in GMT. This variable is not localized for each user’s date settings. See Date Variable Formatting for more information.
gmt_edit_date¶
{gmt_edit_date format="%Y %m %d"}
The date on which the entry was last edited in GMT. This variable is not localized for each user’s date settings. See Date Variable Formatting </templates/date_variable_formatting> for more information.
RFC3229 Support¶
ExpressionEngine has the ability to serve only new content if it receives an RFC3229-compliant request. This means that programs or servers that are configured to do so can request to only see new content that has been produced since the last time it requested a feed and EE will provide only that new content. This allows you to reduce bandwidth costs and download time by only serving the necessary content.
This ability is provided by adding a special parameter to the {exp:channel:entries} opening tag, dynamic_start=. It is used like so:
{exp:channel:entries channel="default_site" limit="10" dynamic_start="yes"}
Empty Feeds and Errors¶
If the combination of tag parameters you specify leads to an error or an empty feed, ExpressionEngine will output a valid, empty RSS feed for you. If you’d like to display the tag errors in this default feed to help troubleshoot why no entries are available, you can put the RSS module into debug mode by adding the debug= parameter:
{exp:rss:feed channel="default_site" debug="yes"}
If you want, you can also specify your own feed to use in place of the default, with the option of displaying the tag error as well, using the {if empty_feed} conditional. Tag errors can be displayed with the {error} variable.:
{if empty_feed}
<?xml version="1.0" encoding="{charset}"?>
<rss version="2.0">
<channel>
<title>{site_name}</title>
<link>{site_url}</link>
<description>{site_name}</description>
<item>
<title>Feed Error</title>
<description>{error}</description>
</item>
</channel>
</rss>
{/if}