BDP RSS Aggregator: read me first

The BDP RSS Aggregator is a plugin for us with the Wordpress publishing platform.


Usual warnings

The software is provided "as is", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the software.

If after using this plugin your computer or server belches blue smoke, eviscerates the blogbase and melts into a puddle, you were warned.

Distributed under GPL. Copyright: Bryan Palmer 2005.


  1. Download the ZIP file. Unpack the ZIP file. Upload the bdprss directory (and its contents) to your plugins directory.

    (Note: if you are upgrading, you may need to delete all old versions of the plugin).

  2. Activate the plugin from the WordPress dashboard.

  3. Go to the Manage > RSS Feeds option from the dashboard and add the RSS feeds you want. Set the polling frequency.

  4. Then from the Manage > RSS Feeds option on the dashboard, you must create a list format. The list format will will have an identifier that you will use as the argument to BDPRSS2::output(n) in the next step. So write this number down.

  5. Edit the sidebar.php file from your theme (in /wp-content/themes/your-theme-name) and add code along the following lines.
    <li><h2>RSS Feeds</h2>
    <?php BDPRSS2::output(1); ?>
    <li>About <a href=""> the RSS Aggregator</a></li>

Formatting output

Once you have installed the plugin and selected your feeds you will need to get ready to format your output. In this section we look at some styles you might want to consider.

Recent entries

The first format is recent entries. It looks like this.

The XHTML settings for this follow:

Feeds by site - long version

An example is on this page.

The XHTML settings for this follow:

Feeds by site - short version

An example is on the right hand column of this page

The XHTML settings for this follow:

Timing issues

One of the options is to display the age of the post.

This is tricky stuff.

Some feeds simply do not include the date and time of a post. Some feeds only include the date. In these cases the Aggregator uses the time the feed was polled as the date and time.

Another problem is with date and time formats. Some dates and times are encoded with a standard unix string. Some are encoded with the W3C date and time format. Some use non-standard encoding. The Aggregator uses the PHP function strtotime() if the date was passed in a <pubDate>date field</pubDate>. If the Dublin Core <dc:date>date field</dc:date> is used, the Aggregator decodes it with the Wordpress function parse_w3cdtf().

Quite a number of feeds have the date and time, but express it incorrectly in terms of the GMT offset. If, at the time of polling, a new post has a date/time that is more than 5 minutes into the future or 5 minutes older than the last update time, then the Aggregator uses the poll time. It also sets a check on the timezone offset. The check is displayed as a question mark.

The most commen problem I see in Canberra Australia (GMT+10.00) is that some blogs report local time as GMT time. To correct this, I can enter an adjustment (of -10) to get GMT time (or -8 for those Perth based blogs).

How did you do the feed page

The secret is to use a plugin that allows you to include PHP on a page.

There are a number of such plugins for Wordpress.

I use PHP Exec

Change log

Version 0.2.2 (test) - 30 Dec 2005
When editing a list, there is now a variable to prevent printing the site name. To use this update you should delete the old bdprss_lists table from your database. But if you are feeling particularly brave, use myPHPadmin to add a field to the wp_bdprss_lists table. The field is named 'output_site_name'. It is an ENUM field. The enumeration is ('Y', 'N'). The default value is 'Y'. The field is not null. (Warning, if you do the wrong thing in myPHPadmin, you can destroy your entire blog).

Version 0.2.1 (test) - 18 Dec 2005
When editing a list, there is now a variable to set the length (in characters) for each item displayed. To use this update you must delete the old bdprss_lists table from your database.

Version 0.2.0 - pre-release 3 - 3 Dec 2005
Fixed a bug that became evident with Firefox 1.5

Version 0.2.0 - pre-release 2 - 7 Sept 2005
Minor tweaks

Version 0.2.0 - pre-release 1 - 4 Sept 2005
Complete rewrite. Still only alpha stable code

Version 0.1.3 - 13 July 2005
Added $table_prefix code. This means more than one wordpress blog in a database is now supported.

Note: this necessitates re-enetering your feed lists.

Version 0.1.2 - 13 July 2005
Made the RSS polling frequency a variable that can be changed from the dashboard.

Version 0.1.1 - 10 July 2005

Version 0.1 - 10 July 2005
Completed the usability upgrade.

Version 0.0.7 - 10 July 2005
Vastly improved method for adding and removing feeds. Much friendlier to use now.

Version 0.0.6 - 2 July 2005
Minor bug fixes. Removed some of the debugging code. Fixed a bit of phpexec that was not interacting well with wpautop() in WordPress.

Version 0.0.5 - 25 June 2005
Added the delete sites code to the set function.

I am a little more comfortable that the code is becoming stable.

Version 0.0.4 - 23 June 2005
Minor bug fix. You can now include your own site in the list of feeds.

Version 0.0.3 - 19 June 2005
Played with the phpexec plugin to make a stand alone feed page. I have tweaked the plugin to do what I wanted. (

Also changed the calling arrangements. So you will to change the code in your sidebar.php to upgrade to this version.

Still a prototype version!

Version 0.0.2 - 9 April 2005
Played with character encoding. Some other minor changes. Still a prototype version.

Version 0.0.1 - 29 Mar 2005
Prototype version released. This should be considered alpha development software.