logo

Sue Feng Design

‹ Back to blog

Creating a RSS Feed Reader for WordPress

Have you ever wondered if there’s a way to create a page that displays all your friends’ recent entries so you don’t have to visit their sites individually every time you want to see if they have updates? Well, I have created just the post for you. I still need to find a way to display full entries though, and possibly categories the entries fall under, the author’s name, and a comments link with the number of comments already posted. Basically, I’m looking for something like Livejournal’s friends page or Xanga’s subscriptions page.

Here’s the bit of PHP code you will be needing:

<?php
    require_once (ABSPATH . WPINC . '/rss-functions.php');
    $url = 'http://sue.com/feed/';
    $rss = fetch_rss( $url );
    if ( $rss ) {
        echo "<h4>" . $rss->channel['title'] . "</h4>";
        $i = 1;
        foreach ($rss->items as $item) {
            $href = $item['link'];
            $title = $item['title'];
            $pubdate = $item['pubdate'];
            $author = $item['author'];
            $category = $item['category'];
            $description = $item['description'];
            echo "<span style="font-size:16px">$title</span><b>$pubdate</b><div style="padding:0 20px;">$description</div>";
            if ($i == 1 ) break;
            $i = $i + 1;
        }
    }
?>

The only part you really need to change is the part that says

http://sue.com/feed/

Change that to whatever URL the feed page is to your friend’s web site. Usually they provide a link for you. If you have Firefox, you can view that page by clicking on the orange square icon on the very right of the address bar. Otherwise you can right click and view source to find where it says link rel=”alternate” and find the URL of the feed after that. Be sure it ends with rss, or feed. Somehow atom feeds don’t work with this code.

For each new feed URL you want on the page, you’ll need to copy and paste that code again and insert the URL.

Edit on 1.30.2008: To display full entry feeds, use this bit of code in place of where it says

$description = $item['description'];
$isset = $item['content']['encoded'];

and replace where it says $description with $isset.

To display the author’s name use this:

$author = $item['dc']['creator'];

And be sure to include echo “Author: $author”;

Oh yeah, and here are the instructions for how to apply the code:

To set up the dailies page, you need to create a template. Let’s call it “Feed”. To create a template, basically copy the code from page.php or if you don’t have that use index.php, but delete wherever they call the comments function, the date, and anything else you don’t want to show up on your dailies page.

Create feed.php with that copied code from page.php or index.php. At the top you should write _

<?php /* Template Name: Feed */ ?>

or whatever you want the template name to be. Then you should paste that bit of code I mentioned in this post in place of where it says _

<?php the_content(); ?>

or something similar to that.

Create as many duplicates of that bit of code as there are feeds you want to read from people. It only creates one entry per site. Be sure to replace the URL with whatever feed URL you want. After that, save the feed.php, and upload it on your server under your theme’s folder.

Then create a page in WordPress, and name it “Dailies” or something like that. Be sure to select the template “Feed”. You don’t have to write anything on that page. Hit publish, and you should be able to view that page.

Posted on: January 23, 2008Categories: TutorialsTags: coding, wordpress
‹ Back to blog