Update 2007-11-21: FeedWordPress 0.99 is now out of date. You can download the latest release — 0.991 at the time of this writing — from the project homepage.
public (non-beta) release of **FeedWordPress version 0.99** is now available for download.(http://projects.radgeek.com/download/feedwordpress-0.99.tar.gz)
There have been changes to the way that FeedWordPress’s code is organized since version 0.98. If you successfully installed either of the beta releases, you don’t need to do anything special to install the current release. However, if you are upgrading from version 0.98 or before, be sure to see the **installation instructions** below.
### Changes since version 0.98 ###
This release provides compatibility with WordPress 2.2 and 2.3. It has been extensively tested against WordPress version 2.2.3 and the version 2.3 release candidate. I think that all the compatibility issues have been hammered out; of course, if you notice any problems, please let me know and I’ll get on a bugfix as soon as possible.
Version 0.99 also includes an overhaul to the user interface, some significant new features, and a number of bug fixes:
* **AUTOMATIC UPDATES WITHOUT CRON:** FeedWordPress now allows you to
automatically schedule checks for new posts without using external task
scheduling tools such as cron. In order to enable automatic updates, go
to **Syndication –> Options** and set “Check for new posts” to
“automatically.” When this option is turned on, FeedWordPress will check for new posts
automatically (1) when someone views your page, (2) if it has been ten minutes (or
whatever interval you set) since the last time someone viewed your page. This offers a
way to keep FeedWordPress up-to-date without having to schedule a cron script. It also
simplifies the process of updating if you do choose to use a cron script — just have curl
fetch your home page on a fixed schedule (so, for example, I would execute
`curl http://feministblogs.org/` every 15 minutes to keep Feminist Blogs up-to-date).
Note that this is not the same thing as precisely scheduled updates — at a minimum,
FeedWordPress will not check for new posts unless and until the next time somebody
views your page. But for practical purposes it does allow you to keep your aggregator
updated without having to run cron, and it is as close to precisely scheduled updates as
you can get without using real scheduling tools such as cron.
An important side-effect of the changes to the update system is that if
you were previously using the cron job and the `update-feeds.php` script
to schedule updates, you need to change your cron set-up. The old
`update-feeds.php` script no longer exists. Instead, if you wish to use
a cron job to guarantee updates on a particular schedule, you should
have the cron job fetch the front page of your blog (for example, by
using `curl http://www.zyx.com/blog/ > /dev/null`) instead of activating
the `update-feeds.php` script. If automatic updates have been enabled,
fetching the front page will automatically trigger the update process.
* **INTERFACE REORGANIZATION:** All FeedWordPress functions are now located
under a top-level “Syndication” menu in the WordPress Dashboard. To
manage the list of syndicated sites, manually check for new posts on
one or more feeds, or syndicate a new site, you should use the main page
under **Syndication**. To change global settings for FeedWordPress,
you should use **Syndication –> Options**.
* **FILE STRUCTURE REORGANIZATION:** Due to a combination of changing styles
for FeedWordPress plugins and lingering bugs in the FeedWordPress admin
menu code, the code for FeedWordPress is now contained in two different
PHP files, which should be installed together in a subdirectory of your
plugins directory named `feedwordpress`. (See README.text for
installation and upgrade instructions relating to the change.)
* **MULTIPLE CATEGORIES SETTING:** Some feeds use non-standard methods to
indicate multiple categories within a single category element. (The most
popular site to do this is del.icio.us, which separates tags with a
space.) FeedWordPress now allows you to set an optional setting, for any
feed which does this, indicating the character or characters used to
divide multiple categories, using a Perl-compatible regular expression.
(In the case of del.icio.us feeds, FeedWordPress will automatically use
\s for the pattern without your having to do any further configuration.)
To turn this setting on, simply use the “Edit” link for the feed that
you want to turn it on for.
* **REGULAR EXPRESSION BUG FIXED:** Eliminated a minor bug in the regular
expressions for e-mail addresses (used in parsing RSS `author`
elements), which could produce unsightly error messages for some users
parsing RSS 2.0 feeds.
* **DATE / UPDATE BUG FIXED:** A bug in date handling was eliminated that may
have caused problems if any of (1) WordPress, or (2) PHP, or (3) your
web server, or (4) your MySQL server, has been set to use a different
time zone from the one that any of the others is set to use. If
FeedWordPress has not been properly updating updated posts, or has been
updating posts when there shouldn’t be any changes for the update, this
release may solve that problem.
* **GOOGLE READER BUGS FIXED:** A couple of bugs that made it difficult for
FeedWordPress to interact with Google Reader public feeds have been
fixed. Firstly, if you encountered an error message reading “There was a
problem adding the newsfeed. ” when you tried to add the feed,
the cause of this error has been fixed. Secondly, if you succeeded in
getting FeedWordPress to check a Google Reader feed, only to find that
the title of posts had junk squashed on to the end of them, that bug
has been fixed too. To fix this bug, you must install the newest version
of the optional MagpieRSS upgrade.
* **FILTER PARAMETERS:** Due to an old, old bug in WordPress 1.5.0 (which was
what was available back when I first wrote the filter interface),
FeedWordPress has traditionally only passed one parameter to
syndicated_item and syndicated_post filters functions — an array
containing either the Magpie representation of a syndicated item from
the feed, or the database representation of a post about to be inserted
into the WordPress database. If you needed information about the feed
that the item came from, this was accessible only through a pair of
global variables, $fwp_channel and $fwp_feedmeta.
Since it’s been a pretty long time since WordPress 1.5.0 was in
widespread usage, I have gone ahead and added an optional second
parameter to the invocation of the syndicated_item and syndicated_post
filters. If you have written a filter for FeedWordPress that uses either
of these hooks, you can now register that filter to accept 2 parameters.
If you do so, the second parameter will be a SyndicatedPost object,
which, among other things, allows you to access information about the
feed from which an item is syndicated using the $post->feed and the
$post->feedmeta elements (where $post is the name of the second
NOTE THAT THE OLD GLOBAL VARIABLES ARE STILL AVAILABLE, for the time
being at least, so existing filters will not break with the upgrade.
They should be considered deprecated, however, and may be eliminated in
* **FILTER CHANGE / BUGFIX:** the array that is passed as the first argument
syndicated_post filters no longer is no longer backslash-escaped for
MySQL when filters are called. This was originally a bug, or an
oversight; the contents of the array should only be escaped for the
database *after* they have gone through all filters. IF YOU HAVE WRITTEN
ANY syndicated_post FILTERS THAT PRESUME THE OLD BEHAVIOR OF PASSING IN
STRINGS THAT ARE ALREADY BACKSLASH-ESCAPED, UPDATE YOUR FILTERS
* **OTHER MINOR BUGFIXES AND INTERNAL CHANGES:** The internal architecture of
FeedWordPress has been significantly changed to make the code more
modular and clean; hopefully this should help reduce the number of
compatibility updates that are needed, and make them easier and quicker
when they are needed.
### Installation instructions ###
To *upgrade* an existing installation of FeedWordPress to version 0.99:
1. Download the FeedWordPress archive in zip or gzipped tar format and
extract the files on your computer.
2. If you are upgrading from **version 0.98 or earlier**, then you need to
create a new directory named `feedwordpress` in the `wp-content/plugins`
directory of your WordPress installation, and you also need to *delete*
your existing `wp-content/update-feeds.php` and
`wp-content/plugins/feedwordpress.php` files. The file structure for
FeedWordPress has changed and the files from your old version will not
be overwritten, which could cause conflicts if you leave them in place.
3. Upload the new PHP files to `wp-content/plugins/feedwordpress`,
overwriting any existing FeedWordPress files that are there. Also be
sure to upgrade `wp-includes/rss.php` and
`wp-includes/rss-functions.php` if you use the optional MagpieRSS
upgrade, or don’t use it yet but do want to syndicate Atom 1.0 feeds.
3. If you are upgrading from **version 0.96 or earlier**, **immediately** log
in to the WordPress Dashboard, and go to Options –> Syndicated. Follow
the directions to launch the database upgrade procedure. The new
versions of FeedWordPress incorporate some long-needed improvements, but
old meta-data needs to be updated to prevent duplicate posts and other
possible maladies. If you’re upgrading an existing installation, updates
and FeedWordPress template functions *will not work* until you’ve done
the upgrade. Then take a coffee break while the upgrade runs. It should,
hopefully, finish within a few minutes even on relatively large
4. If you are upgrading from **version 0.98 or earlier**, note that the old
`update-feeds.php` has been eliminated in favor of a (hopefully) more
humane method for automatic updating. If you used a cron job for
scheduled updates, it will not work anymore, but there is another,
simpler method which will. See Up Feed Updates to get
scheduled updates back on track.
5. Enjoy your new installation of FeedWordPress.
Up Feed Updates: http://projects.radgeek.com/feedwordpress/install/#setting-up-feed-updates