FeedWordPress 0.99 is hereby released; enjoy WP 2.2 and 2.3 compatibility, bug fixes, major new features, updates without cron

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

being at least, so existing filters will not break with the upgrade.
They should be considered deprecated, however, and may be eliminated in
the future.

* **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

* **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[1] 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

55 thoughts on “FeedWordPress 0.99 is hereby released; enjoy WP 2.2 and 2.3 compatibility, bug fixes, major new features, updates without cron

  1. Wow! thanks. cant wait to try it out. I’m particularly excited about the 2.3 compatibility. One question though.. are you going to add tag support – as well as categories?

  2. Issue with 2.3, admin-db.php has been removed…is there any quick fix to this. I can get the plugin to activate obviously by commenting out the require statement for it, but obviously nothing gets saved to the DB.

  3. You really need to add some clever check to see if feedwordpress 0.99 is already doing an update, I tried the “automatic” update and I suddenly had a bunch (like 10 after a while) of httpd processes who were doing updates of the same blog. This resulted in total outrage load average of 40 (!) on the server and posts from the same blog being posted numerous times.

    I added a check which checks against the IP address before starting an automatic update and cronned curl and that works and makes sure it doesn’t start numerous processes doing updates… I’m actually amazed you haven’t noticed this (which makes me wondre if it’s the WP 2.2 version I use right now which causes it or something like that) because this should(?) be a problem for any frequently visited site using feedwordpress..

  4. Hi, thanks for the great plugin!

    I’m having a couple of problem though that perhaps someone can help me with?

    Syndicating http://pipes.yahoo.com/pipes/pipe.run?cmd=Run%2BPipe&id=noiFVCYU3BGcFPqRJhOy0Q&render=rss&run=1&textinput1=gtm
    gives me a bunch of errors (repeated maybe 20 times):
    Warning: Missing argument 1 for updatefeedsmention() in httpdocs/blog/wp-content/plugins/feedwordpress/feedwordpress.php on line 411

    Updating from <> …

    I just upgraded due to other problems with 0.981 so maybe it’s an upgrade/compatibility issue?


  5. I am still using WP 1.5.2 and FWP version .99 throws an error in line 89 of FWP because it can’t find stripslashes_deep which apparently is a WP 2.x function. I just added it to functions-formatting.php, but thought you would like to know.

  6. While I’m thinking about it – ever since .981 (and now with .99) whenever I update all feeds manually the message displayed is

     Updating n from <n>

    Where the “n” within brackets is hyperlinked to mysite.com/n . It doesn’t prevent function, but always makes me nervous.

  7. Sorry for the serial commenting, but in my prior comment the n is actually hyperlinked to mysite.com/wp-admin/n.

  8. Can’t get it to work anymore 🙁 Had this plugin working in an older version, but now it doesn’t anymore. 🙁

    I know the sites I want to syndicate do have new posts almost daily, but I don’t get anything from them with feedwordpress.

  9. (adding:)

    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed

    0 0 0 0 0 0 0 0 –:–:– –:–:– –:–:– 0
    100 1698 0 1698 0 0 2135 0 –:–:– –:–:– –:–:– 9702

    Is what I get as reply in mail.

  10. Having the categories not being recognized issue as well. Everything is going in the uncategorized folder.

    Great job, by the way.

  11. Hi just to let you know I’m having the uncategorized problem to. I tried deleting all of my feed and re inserting them after the upgrade but to no avail. apart from that this is still a great plugin so

    thank you

  12. Great tool. Would even be better if it had something like a ‘rewrite’ and ‘link to’ functionality that WP-O-Matic has. I’m testing both.

  13. Hello, I started using this plugin recently, thought I’d share a couple of things.

    I had some problems with feeds that don’t validate (although I think that sometimes they should). Anyway I get around this by parsing the feed through feedburner, or perhaps yahoo pipes. One of the feeds is actually passed though both to clean it up!

    I’m having some issues with duplicate posts. This is only happening so far with feeds from ebay, but I think other are havign this problem too.
    To get around this I always syndicate posts to draft status but I have to check frequently to publish the posts.

    I have a question: What determines if a post is unique? Knowing this perhaps I could resolve or work-around my duplicate post issue. I’m happy to do some debug or become a beta-tester to help resolve this issue. 🙂

    Still a great plugin though!

  14. Charles, this plugin is exactly what I’ve been looking for. And it’s working with WP 2.3, except for the duplication problem mentioned above.

    I, too, have set it to draft mode to prevent dupes from being published but it still puts another 10 per blog draft mode which I then have to manually delete.

    Hope you can tackle this.

  15. Hi,
    I installed it on WordPress 2.3 but after I activate the plugin. I can see the Syndication button on the right. But if I click on it, it directs me to the homepage of my own website instead of the menu.

    Strange? Can you help out?

  16. (Sorry for my english)

    I use FeedWordPress since 2006 april and I hadn’t any problem. I have a site called Planeta Canarias.

    But, after the September 17, 2007, this plugin don’t syndicate the feeds from Feedburner and I haven’t make any change.

    Does somebody know about this? Thanks!!!

  17. Great Plug-in. I am using it with v2.3.

    The only issue I am getting is while syndicating any Atom feed. It seems that its not working with any ATOM feed rather it working perfectly fine with the RSS feeds.

    Any Suggestions ?

  18. Hi guys, thank you for this wonderful plugin.
    Since i installed 0.99 version, i’ve a problem. many post duplicates. I have just one source and i set the updating “automatically” (every 5 minutes) and i also have a cron that fetch my homepage every 15min.
    I have so many duplicates!! (even five for each articles)
    How can i solve it ? Probably i could stop automatic update, and do it only with cron… but how i con do this ?
    Thanks in advance…

  19. Two things others have mentioned that I have noticed as well.
    1) duplicate posts – I’m syndicating content from my blog hosted at WordPress.com to a WordPress 2.3 blog hosted myself at Dreamhost and it gets the last 10 or so posts each time and tries to create them as new posts. I have the syndicated content added as drafts for now and just delete the dups. Note: it only makes one duplicated entry of an existing post, not many duplicate entries. I don’t have a high posting volume, so I wonder what will happen once I get past the first 10 posts or so that were not added to the Dreamhosted blog via this plugin.
    2) Categories – not being added to syndicated posts. Everything comes across as Uncategorized.

    Otherwise, its a great plugin. Just what I was looking for to transition to the new blog while I’m getting things setup.


  20. Hi, just wanted to say thanks for a great plugin.

    I do have a question, though.

    Right now, I’ve set the permalinks to point to the originating url. How would I still grab the permalink for the post page on my site, though?

  21. This plugin has great potential unfortunately it isn’t cooperating with any feeds I give it, not even feedburner.

    I get the same error each time I submit a feed: Fatal error: Cannot use object of type WP_Error as array in /home/[Deleted]/wp-includes/taxonomy.php on line 1010

    Any ideas?

  22. Allow me to add my voice to the chorus of “Great Job”! As a WP plugin author myself, I know how hard it can be.

    I’d like to request one feature for a future version:

    I import all as draft and some posts never get published. However, if I delete them, they are re-added the next update. Would it be possible to keep a list of previously imported posts (base it on permalink?) and only add those that do not appear in the list?

    Again, great job!


Comments are closed.