Ok, I’ve been doing all sorts of things with WordPress for a while now, but oddly enough, I never actually wrote a plugin (although, in retrospect, I did a lot of template hacks that probably would have been easier to do as plugins). Anyway, I needed a plugin for a blog I was working on that would allow me to display the summary of N number of blog posts from another blog. There seem to be plenty of existing plugins that do this, however most of them are either horrible code (both HTML and PHP), or they don’t work with Atom feeds that don’t have descriptions. I wanted something very simple, with very clean output that would ‘just work’™. So, after trying about a dozen of them, I decided to just write my own (which turned out to be insanely easy). If I would have started down that path at first, I probably would have been done sooner.
So, if anyone is interested in this very simple plugin, here it is. Of course, it’s GPL. I expect I’ll be adding more features to it as I need, but for now this does exactly what I want with very little code to maintain.
You can get the current version from here: simplerssembed.zip
Put the contents of simpleressembed.zip into your wp-contents/plugins directory, and unzip it. This should give you a directory called ‘simpleressembed’ which has 3 things in it:
- an empty directory called ‘cache’
- a file called readme.txt
- a file called simplerssembed.php
Make sure that the cache directory is writeable by your web server, or whatever user that will be executing the php scripts. The safest way (on *nix system) is to do the following (assuming that the process runs as the user ‘apache’:
[root@ simplerssembed]# chown apache: cache [root@ simplerssembed]# chmod 755 cache
Then go to the plugins tool in your WP dashboard, and activate the plugin.
Using the plugin
Once the plugin is activated, you can embed RSS feeds with the following shortcode:
[simplerssembed rssfeed='http://wordpress.org/news/feed/' rssitems='5' rsscssclass="rssfeeditem" rssdateformat="j F Y" rsslinktarget="_new"]
The currently defined parameters are as follows:
rssfeed -> URI of the RSS feed rssitems -> The number of items to display rssmaxdescription -> The maximum number of summary characters to display rsscssclass -> The class name to give the containing <div> (per item) rsslinktarget -> The target attribute for the link to the post rsscacheduration -> The duration (in seconds) of the cache rssdateformat -> The data format (see PHP's date function)
The default values for the above parameters are:
rssfeed => 'http://wordpress.org/news/feed/' rssitems => '5' rssmaxdescription => '400' rsscssclass => 'rssitem' rsslinktarget => '_self' rsscacheduration => '3600' rssdateformat => 'j F Y | g:i a'
This is output from the actual code above:
WordPress 6.2 Beta 1 is here and ready for download and testing. This version of the WordPress software is under development. Please do not install, run, or test this version of WordPress on production or mission-critical websites. Instead, it is recommended that you test Beta 1 on a test server and site.
Posted on 7 February 2023
Welcome to the first 2023 edition of The Month in WordPress! January kicked off with an overview of WordPress’ big goals for 2023 and new projects beginning to take shape. Moreover, work on the next major release, WordPress 6.2, continues with Beta 1 scheduled for next week. Read on for the latest news. WordPress 6.2 […]
Posted on 3 February 2023
The latest People of WordPress story features Daniel Kossmann, from Brazil, on his journey from video games fan to community builder.
Posted on 31 January 2023
Gutenberg's second phase is ending. Join Josepha as she reflects on what concluding a phase means in the project.
Posted on 30 January 2023
Last month at State of the Word, WordPress Executive Director Josepha Haden Chomphosy shared some opening thoughts on “Why WordPress” and the Four Freedoms of open source. In this recent letter, she expands on her vision for the WordPress open source project as it prepares for the third phase of Gutenberg: “We are now, as […]
Posted on 19 January 2023