FeedWordPress 0.99 beta 2. Testers still wanted.

Update 2007-11-21: FeedWordPress 0.99b2 is now out of date. You can download the latest release — 0.991 at the time of this writing — from the project homepage.

Thanks to everyone who has been trying out the first beta release of FeedWordPress 0.99. In response to my own tests and some feedback from users, I have prepared a second beta release, FeedWordPress 0.99b2, which all are welcome to download and test out.

Again, by beta, I really mean beta, not one of those Web 2.0 perpetual beta releases. The point is to put it out there for you all to test out. You should not count on this release being in full working order. There are features due for this release that I haven’t implemented. I will implement them later. Those that I have implemented all seem to be in working order on my end of things, but everyone’s Apache/PHP/MySQL/WordPress/etc. stack is so different that it’s hard to make any promises about how it will work for you, until y’all have had some time to test it.

With that pre-amble out of the way, if you are interested in testing out the beta release, you should feel free to download FeedWordPress 0.99b2, read the installation instructions below, give it a test run, and let me know how it works for you.

If you are installing this beta as an upgrade over FeedWordPress 0.981 or earlier, please be sure to follow the installation instructions below. If you have already installed 0.99b1 and are installing the new beta over that, you can just replace the old files with the new ones.

Installation instructions: You may have noticed that I have reorganized the file structure of the plugin. Because of this, if you have an older release of FeedWordPress installed, and intend to install the beta release over the older release, first you are going to need to go to your old installation and delete two of the old installation’s files (wp-content/update-feeds.php and wp-content/feedwordpress.php). Once this is done, create a new directory in your plugins directory, wp-content/plugins/feedwordpress/, and copy the new release’s plugin files to this directory. If you don’t delete the old files, then they will not get overwritten and there may be a conflict between the old and new versions. If you do not install the new files in their own directory, the menus will probably not work correctly.

Enjoy, and let me know how it works for you!

FeedWordPress 0.99 beta 1. Testers wanted.

Update 2007-11-21: FeedWordPress 0.99b1 is now out of date. You can download the latest release — 0.991 at the time of this writing — from the project homepage.

It’s been a long time, for several different personal reasons that don’t bear going into here, but the good news is that I am at long last coming back to active development on FeedWordPress. There are some bug fixes and a lot of feature requests that have been waiting for quite some time; and I will be able to start cleaning these out over the course of the next few days.

Toward that end, I am putting out a beta release of the next version of FeedWordPress. By beta, I really mean beta, not one of those Web 2.0 perpetual beta releases. The point is to put it out there for you all to test out. You should not count on this release being in full working order. There are features due for this release that I haven’t implemented. I will implement them later. Those that I have implemented all seem to be in working order on my end of things, but everyone’s Apache/PHP/MySQL/WordPress/etc. stack is so different that it’s hard to make any promises about how it will work for you, until y’all have had some time to test it. With that pre-amble out of the way, if you are interested in testing out the beta release, you should feel free to download FeedWordPress 0.99b1, read the installation instructions below, give it a test run, and let me know how it works for you.

So, what’s new? Well, a fair amount has changed under the hood, much of it things that you won’t notice, but which will hopefully clean up the code a bit and make compatibility releases quicker and easier to put out in the future. But there are a couple of significant changes that you will notice.

  1. First, FeedWordPress functions have been moved to their own top-level menu, currently called Syndication. To syndicate new feeds, change settings on existing feeds, change global options for FeedWordPress, or to manually instruct FeedWordPress to check for new posts, use the Syndication top-level menu and its submenus.

  2. Second, I am changing the way that FeedWordPress checks for new posts. Specifically, I am making the process somewhat less arcane, and making it possible (more or less) to keep up automatic updates even if you do not have access to cron. To turn this feature on, go to Syndication –> Options and tell FeedWordPress to check for new posts automatically. (This option is currently not on by default.)

    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.

  3. I have had several questions about compatibility between FeedWordPress and WordPress 2.2. I have checked this beta release with the latest release of WordPress 2.2 on my testbed server and I have encountered no problems. I do not know of any changes between WordPress 2.1 and 2.2 which would introduce an incompatibility. But please let me know if you have any compatibility issues with WordPress 2.2.

    Note that if you are using the beta release of WordPress 2.3, there are changes to the WordPress category system that probably will cause compatibility problems with FeedWordPress. This should hopefully be fixed in the next beta release, which should be out sometime within the next few days.

  4. As mentioned, I have re-organized a bit. Please make sure you follow the installation instructions below.

Installation instructions: You may have noticed that I have reorganized the file structure of the plugin. Because of this, if you have an older release of FeedWordPress installed, and intend to install the beta release over the older release, first you are going to need to go to your old installation and delete two of the old installation’s files (wp-content/update-feeds.php and wp-content/feedwordpress.php). Once this is done, create a new directory in your plugins directory, wp-content/plugins/feedwordpress/, and copy the new release’s plugin files to this directory. If you don’t delete the old files, then they will not get overwritten and there may be a conflict between the old and new versions. If you do not install the new files in their own directory, the menus will probably not work correctly.

Enjoy, and let me know how it works for you!

FeedWordPress 0.981: 1970 date bug re-fixed

Update 2007-11-21: FeedWordPress 0.981 is now out of date. You can download the latest release — 0.991 at the time of this writing — from the project homepage.

If you have been experiencing a bug with FeedWordPress 0.981, which leads to new posts from Atom feeds being dated back to 1970, then you should download a fresh copy of FWP 0.981. Some user bug reports (thanks!) alerted me to the fact that I’d accidentally packaged an older version of the MagpieRSS upgrade in the 0.981 release, which did not fix this bug. The correct version of rss.php is now included, and will solve the problem.

You can get the fix by grabbing FeedWordPress 0.981 in a gzipped tar or FeedWordPress 0.981 in a zip archive.

FeedWordPress filter poll

I am working on version 0.99 of FeedWordPress, which I hope to release sometime in the next couple weeks. One of the less obvious changes that I hope to accomplish to clean up the internal code, which has become a bit ugly and crufty over time. One thing that I would like to overhaul, if I can do so, is the way that FeedWordPress passes information to filters. But I am not yet sure whether or not I can safely do this. That’s where you come in.

FeedWordPress allows you to write filters that can transform, filter out, or take actions in response to, new posts coming in. Since these filters are written in PHP, the mechanism is extraordinarily flexible if you know how to use it, but judging from the e-mail I get most people don’t yet know how to use it. (That’s something I hope to address in the future with some example scripts and better documentation. But one thing a time.)

So, here are the questions. Feel free to answer them as you see fit in the comments section or by e-mail.

  1. Do you use PHP filters together with FeedWordPress (e.g. syndicated_item or syndicated_post fliters)?

  2. If you do, then what do those filters do?

  3. Do your filters rely on any information from the global variables $fwp_channel or $fwp_feedmeta?

  4. What versions of WordPress and FeedWordPress are you using?

Answers will help me make an informed decision about what to do with FeedWordPress’s handling of filters, which will hopefully maximize benefits while minimizing headaches. Let me know!

FeedWordPress 0.981: bugfix and compatibility release allowing use with WordPress 2.1

Update 2007-11-21: FeedWordPress 0.981 is now out of date. You can download the latest release — 0.991 at the time of this writing — from the project homepage.

There’s a lot to say about some long-awaited and frustratingly long-delayed improvements to FeedWordPress, but I don’t have much time tonight, so I’ll be brief.

FeedWordPress is now compatible with WordPress 2.1. Version 0.981 is now available for download (also available in zip format); the major feature behind this release is code to accommodate the changes to the structure of WordPress’s database between version 2.0.x and 2.1, which until now caused a number of SQL errors and prevented WordPress from syndicating new posts when installed with the latest version of WordPress.

There is one important change that you should note about the installation procedure. Due to what seems to me like a fairly pointless bit of wordsmithing on the part of the WordPress development team, you now need to install two files from the OPTIONAL/wp-includes
directory in order to successfully upgrade your version of MagpieRSS. (The upgrade is necessary for FeedWordPress to support enclosures, multiple categories, or Atom 1.0 feeds.) Be sure that you copy both rss-functions.php and rss.php to your wp-includes directory when upgrading MagpieRSS; if you copy only rss-functions.php you will not end up with a working MagpieRSS (or FeedWordPress) installation.

In addition to the compatibility update, and the changes to the installation procedure, some changes have been made to the user interface code which should help FeedWordPress’s pages fit in better with the WordPress 2.x user interface. In particular, the “Categories” checkboxes for assigning categories to all posts syndicated from any source (under Options –> Syndication) or to all posts syndicated from a particular feed (under Blogroll –> Syndicated) should no longer cause an ugly spill all over the interface.

There are also some important fixes to some outstanding and irritating bugs. Here’s a quick summary of the other changes in this release:

  • DATE BUG AFFECTING SOME PHP INSTALLATIONS RESOLVED: due to a subtle bug
    in parse_w3cdtf(), some installations of PHP encountered problems with
    FeedWordPress’s attempt to date posts, which would cause some new posts
    on Atom feeds to be dated as if they had apppeared in 1969 or 1970
    (thus, effectively, never appearing on front apge at all). This bug in
    the date handling should now be fixed.

  • PHP <?=...?> SHORT FORM ELIMINATED: some installations of PHP do not
    allow the <?=...?> short form for printing PHP values, which was used
    extensively in the FeedWordPress interface code. Since this could cause
    fatal errors for users with the wrong installation of PHP, the short
    form has been replaced with full PHP echo statements, and is no longer
    used in FeedWordPress.

  • GLOBAL CATEGORIES BUG RESOLVED: a bug that prevented some users from
    setting one or more categories to apply to syndicated posts from all
    feeds (using the checkbox interface under Options –> Syndication) has
    been resolved.

Please note that 0.981 is preliminary work which I hope will be followed by ongoing work to better integrate FeedWordPress with the new features offered by recent releases of WordPress. If you encounter any problems with it, please be sure to get in touch with me and send as detailed a report of the bug you are encountering as possible. In the next few weeks I hope to be working on a number of other improvements that will bring much more substantial changes to both the user experience and the technical underpinnings for FeedWordPress. As we move towards a 1.0 release, I have high hopes that your experience as a user will get substantially simpler, while the back-end will become substantially more sophisticated.

In any case, watch this space: it’s been slow for the pas several months, but there are some big things coming soon.

Enjoy!

FeedWordPress 0.97: one small increment for the revision number, one giant leap for the software

Update 2007-11-21: FeedWordPress 0.97 is now out of date. You can download the latest release — 0.991 at the time of this writing — from the project homepage.

Huzzah! FeedWordPress 0.97 is now available for download (also in zip format, if you’re in to that kind of thing). Enjoy, and please feel free to report any problems you have with the software or the documentation to me in the comments section below or by e-mail.

Version 0.97 represents major changes, I hope for the better, on several fronts in FeedWordPress. (If I weren’t running out of revision numbers between the current version and 1.0, I would have added a lot more than 0.01 to the version. Stupid decimal notation.) This release will address several long-standing bugs, and hopefully also make other bugs easier to diagnose and to fix. First, the minor inconvenience that this update will impose on you if you are upgrading:

  • INSTALLATION PROCEDURE: Some of the changes between 0.96 and 0.97
    require upgrades to the meta-data stored by FeedWordPress to work
    properly. Thus, if you are upgrading from 0.96 or earlier to 0.97, most
    FeedWordPress operations (including updates and template functions)
    WILL BE DISABLED until you run the upgrade procedure. Fortunately,
    running the upgrade procedure is easy: just go to either Options –>
    Syndication or Links –> Syndicated in the WordPress Dashboard and press
    the button.

Now, the fun stuff. The most important are the new, humane interface for setting feed-specific settings (check it out under Links –> Syndicated –> Edit … no more nerding around with key-value pairs!), Atom 1.0 support, and the overhaul of update-feeds.php. Details follow:

  • FEED FORMAT SUPPORT: Support has been added for the Atom 1.0 IETF
    standard. Several other elements are also newly supported
    (dcterms:created, dcterms:issued, dcterms:modified, dc:identifier,
    proper support for the RSS 2.0 guid element, the RSS 2.0 author element,
    the use of Atom author or Dublin Core dc:creator constructs at the feed
    level to identify the author of individual items, etc.)

    N.B.: full support of several Atom 1.0 features, such as categories
    and enclosures, requires you to install the optional rss-functions.php
    upgrade in your wp-includes directory.

  • BUG FIX: Running update-feeds.php from command line or crontab
    returned “I don’t syndicate…” errors. It turns out that WordPress
    sometimes tramples on the internal PHP superglobals that I depended on
    to determine whether or not the script was being invoked from the
    command line. This has been fixed (the variables are now checked
    before WordPress can trample them). Note that update-feeds.php has
    been thoroughly overhauled anyway; see below for details.

  • BUG FIX: Duplicate categories or author names. Fixed two bugs that could
    create duplicate author and/or category names when the name contained
    either (a) certain international characters (causing a mismatch between
    MySQL and PHP’s handling of lowercasing text), or (b) characters that
    have a special meaning in regular expressions (causing MySQL errors when
    looking for the author or category due to regexp syntax errors). These
    should now be fixed thanks to careful escaping of names that go into
    regular expressions and careful matching of lowercasing functions
    (comparing results from PHP only to other results from PHP, and results
    from MySQL only to other results from MySQL).

  • BUG FIX: Items dated Decembr 31, 1969 should appear less often. The
    function for parsing W3C date-time format dates that ships with
    MagpieRSS can only correctly parse fully-specified dates with a
    fully-specified time, but valid W3C date-time format dates may omit the
    time, the day of the month, or even the month. Some feeds in the wild
    date their items with coarse-grained dates, so the optional
    rss-functions.php upgrade now includes a more flexible parse_w3cdtf()
    function that will work with both coarse-grained and fully-specified
    dates. (If parts of the date or the time are omitted, they are filled in
    with values based on the current time, so ‘2005-09-10’ will be dated to
    the current time on that day; ‘2004’ will be dated to this day and time
    one year ago.

    N.B.: This fix is only available in the optional rss-functions.php
    upgrade.

  • BUG FIX: Evil use of HTTP GET has been undone. The WordPress interface
    is riddled with inappropriate (non-idempotent) uses of HTTP GET queries
    (ordinary links that make the server do something with significant
    side-effects, such as deleting a post or a link from the database).
    FeedWordPress did some of this too, especially in places where it aped
    the WordPress interface (e.g. the “Delete” links in Links –>
    Syndicated). That’s bad business, though. I’ve changed the interface so
    that all the examples of improper side-effects that I can find now
    require an HTTP POST to take effect. I think I got pretty much
    everything; if there’s anything that I missed, let me know.

    Further reading: Ruby 2005-05-06: This Stuff Matters (http://www.intertwingly.net/blog/2005/05/06/This-Stuff-Matters)

  • BUG FIX: Categories applied by cats setting should no longer prevent
    category-based filtering from working. In FeedWordPress, you can (1)
    apply certain categories to all syndicated posts, or all posts from
    a particular feed; and (2) filter out all posts that don’t match one
    of the categories that are already in the WordPress database (allowing
    for simple category-based filtering; just load up WordPress with the
    categories you want to accept, and then tell FeedWordPress not to create
    new ones). However, the way that (1) and (2) were implemented meant that
    you couldn’t effectively use them together; once you applied a known
    category to all syndicated posts from a particular feed, it meant that
    they’d have at least one familiar category (the category or categories
    you were applying), and that would get all posts past the filter no
    matter what categories they were originally from.

    Well, no longer. You can still apply categories to all syndicated posts
    (using either Syndication –> Options, or the feed-level settings under
    Links –> Syndicated). But these categories are not applied to the post
    until after it has already passed by the “familiar categories” filter.
    So now, if you want, you can do category filtering and then apply as
    many categories as you please to all and only posts that pass the filter.

  • BUG FIX: Other minor typos and HTML gaffes were fixed along the way.

  • PERFORMANCE: getfeedmeta() no longer hits the database for information
    on every call; it now caches link data in memory, so FeedWordPress only
    goes to the database once for each syndicated link. This may
    substantially improve performance if your database server resources
    are tight and your templates make a lot of use of custom settings from
    getfeedmeta().

  • API CHANGE: Link ID numbers, rather than RSS URIs, are now used to
    identify the feed from which a post is syndicated when you use template
    functions such as getfeedmeta(). The practical upshot of this is you
    can switch feeds, or change the feed address for a particular syndicated
    site, without breaking your templates for all the posts that were
    syndicated from the earlier URI.

  • API CHANGE: if you have plugins or templates that make use of the
    getfeedmeta() function or the $fwpfeedmeta global, note that the
    data formerly located under the uri and name fields is now located
    under the link/uri field and the link/name field, respectively. Note
    also that you can access the link ID number for any given feed under the
    global $fwp
    feedmeta[1] (in plugins) or
    getfeedmeta(‘link/id’) (in a template in post contexts).

  • FEATURE: the settings for individual feeds can now be edited using a
    humane interface (where formerly you had to tweak key-value pairs in the
    Link Notes section). To edit settings for a feed, pick the feed that you
    want under Links –> Syndicated and click the Edit link.

  • FEATURE: The “Unsubscribe” button (formerly “Delete”) in Links –>
    Syndicated now offers three options for unsubscribing from a feed: (1)
    turning off the subscription without deleting the feed data or affecting
    posts that were syndicated from the feed (this works by setting the Link
    for the feed as “invisible”); (2) deleting the feed data and all of the
    posts that were syndicated from the feed; or (3) deleting the feed data
    and keeping the posts that were syndicated from the feed
    setting the Link to “Invisible” (meaning that it will not be displayed
    in lists of the site links on the front page, and it won’t be checked
    for updates; (2) deleting the Link and all of the posts that were
    syndicated from its feed; or (3) deleting the feed data but keeping the
    posts that were syndicated (which will henceforward be treated as if
    they were local rather than syndicated posts). (Note that (1) is usually
    the best option for aggregator sites, unless you want to clean up the
    results of an error or a test.)

  • FEATURE / BUG FIX: If you have been receiving mysterious “I don’t
    syndicate…”, or “(local) HTTP status code was not 200”, or “(local)
    transport error – could not open socket”, or “parse error – not well
    formed” errors, then this update may solve your problems, and if it does
    not solve them, it will at least make the reasons for the problems
    easier to understand. That’s because I’ve overhauled the way that
    FeedWordPress goes about updating feeds.

    If you use the command-line PHP scripting method to run scheduled
    updates, then not much should change for you, except for fewer
    mysterious errors. If you have done updates by sending periodic HTTP
    requests to http://your-blog.com/path/wp-content/update-feeds.php,
    then the details have changed somewhat; mostly in such a way as to make
    things easier on you. See the README file or online documentation on
    Staying Current for the details.

  • FEATURE: FeedWordPress now features a more sophisticated system for
    timed updates. Instead of polling every subscribed feed for updates
    each time update-feeds.php is run, FeedWordPress now keeps track of
    the last time it polled each feed, and only polls them again after a
    certain period of time has passed. The amount of time is normally set
    randomly for each feed, in a period between 30 minutes and 2 hours (so
    as to stagger updates over time rather than polling all of the feeds at once. However, the length of time between updates can also be set
    directly by the feed, which brings us to …

  • FEATURE: FeedWordPress now respects the settings in the ttl and
    Syndication Module RSS elements. Feeds with these elements set will not
    be polled any more frequently than they indicate with these feeds unless
    the user manually forces FeedWordPress to poll the feed (see Links –>
    Syndicated –> Edit settings).

FeedWordPress 0.96 is loose

Update 2007-11-21: FeedWordPress 0.96 is now out of date. You can download the latest release — 0.991 at the time of this writing — from the project homepage.

FeedWordPress 0.96 is now available for download.

Version 0.96 is a feature-adding release. If there were any bugs that I eliminated between version 0.95 and now, I wasn’t diligent enough to write them down, and I don’t remember any. But I have added three features. Two are minor additions for consistency’s sake or for a minor convenience; one is a bit more significant.

  • FEATURE: for completeness’s sake, there is now a feed setting,
    hardcode url, that allows you to set the URI for the front page
    of a contributor’s website manually (that is, prevent it from being
    automatically updated from the feed channel link on each update). To
    set the URI manually, put a line like this in the Link Notes section
    of a feed:

    hardcode url: yes
    

    You can also instruct FeedWordPress to use hardcoded URIs by default
    on all feeds using Options –> Syndication

  • FEATURE: by default, when FeedWordPress finds new syndicated posts,
    it (1) publishes them immediately, (2) turns comments off, and (3)
    turns trackback / pingback pings off. You can now alter all three
    default behaviors (e.g., to allow pings on syndicated posts, or to
    send newly-syndicated posts to the draft pile for moderation) using
    Options –> Syndication

  • FEATURE: support has been added for enclosures in RSS 2.0 and Atom
    0.6+ newsfeeds. WordPress already supports adding enclosures to an
    item; FeedWordPress merely gets the information on the enclosure
    from the feed it is syndicating and plugs that information directly
    into the WordPress database so that (among other things) that post
    will have its enclosure listed in your blog’s RSS 2 newsfeed.

    Note that enclosure support requires using the optional MagpieRSS
    upgrade (i.e., replacing your wp-includes/rss-functions.php with OPTIONAL/wp-includes/rss-functions.php from the FWP archive)

    If you’re interested (for example, because you’re writing PHP filters and want
    to know how all this is represented), here’s how it’s currently done:

    Enclosures are stored in the array $item[1] as suggested
    at http://magpie.laughingmeme.org/blog/?p=101. So the URL of the first
    enclosure is $item[2][3][4]; the length is
    $item[5][6][7]; and the type is
    $item[8][9][10]

    Note that these are hacked-in solutions for inherited problems with
    MagpieRSS as of version 0.7. They are not guaranteed to be
    forward-compatible when/if Kellan solves these problems in the official
    Magpie branch in the future. If you have filters (for example) that
    depend on either categories or enclosures working as they currently do,
    keep an eye on the ChangeLog in future releases.

Download and enjoy. Feel free to let me know what you think!

FeedWordPress 0.95 is loosed upon the world

Update 2007-11-21: FeedWordPress 0.95 is now out of date. You can download the latest release — 0.991 at the time of this writing — from the project homepage.

FeedWordPress 0.95 is now available for download.

0.95 squashes a bug that I discovered, to my irritation, in the field at Feminist Blogs, and adds some significant features that may be of interest. Author aliases are now supported, and you can now decide whether or not FeedWordPress will create new authors or new categories when it encounters author names or category names that are not yet in the WordPress database. These features can even be used to provide some simple filtering functionality without having to write a PHP filter. For more information, see the change log and the online documentation.

We are slowly moving towards 1.0 (which, incidentally, I don’t intend to call 1.0 — because, roughly, once it reaches that point it will be mature software and will be unlikely to make any milestone changes of the sort that would make a major version number make sense; the version will most likely be named after the date that it was released).

Here’s a rough outline of what there is left for me to do between now and the 1.0 release:

  1. Bug fixes (investigating bugs that users are reporting to me now, and squashing any new ones that come up)

  2. Adding some more global options (e.g., allowing users to globally set the default post status, comment status, and ping status for syndicated posts)

  3. Support for RSS enclosures.

  4. Adding a proper interface for editing FeedWordPress-specific settings for Contributor links; this special editing interface would be reached through the “Edit” link under Links –> Syndicated.

Is there anything important that I’m missing? Let me know what you think.

Change Log: from 0.91 to 0.95

  • BUG FIX: Fixed an obscure bug in the handling of categories: categories
    with trailing whitespace could cause categories with duplicate names to
    be created. This no longer happens. While I was at it I tightened up the
    operation of FeedWordPress::lookup_categories() a bit in general.

  • FEATURE DEPRECATED: the feed setting hardcode categories is now
    deprecated in favor of unknown categories (see below), which allows
    you to strip off any syndication categories not already in your database
    using unknown categories: default or unknown categories: filter. If
    you have hardcode categories: yes set on a feed, this will be treated
    as unknown categories: default (i.e., no new categories will be added,
    but if a post doesn’t match any of the categories it will be added in
    the default category–usually “Uncategorized” or “General”).

  • FEATURE: You can now set global defaults as to whether or not
    FeedWordPress will update the Link Name and Link Description settings
    for feeds automatically from the feed title and feed tagline. (By
    default, it does, as it has in past versions.) Whether this behavior is
    turned on or off, you can still override the default behavior using
    feed settings of hardcode name: yes, hardcode name: no,
    hardcode description: yes, or hardcode description: no.

  • FEATURE: Users can now provide one or several “aliases” for an author,
    just as they can for a category. For example, to make FeedWordPress
    treat posts by “Joseph Cardinal Ratzinger” and “Pope Benedict XVI” as
    by the same author, edit the user profile for Pope Benedict XVI and add
    a line like this to the “User profile” field:

    a.k.a.: Joseph Cardinal Ratzinger
    

    You can add several aliases, each on a line by itself. You can also add
    any other text you like to the Profile without interfering with the
    aliases.

  • FEATURE: Users can now choose how to handle syndicated posts that are
    in unfamiliar categories or by unfamiliar authors (i.e., categories or
    authors whose names are not yet in the WordPress database). By default,
    FeedWordPress will (as before) create a new category (or new author) and
    use it for the current post and any future posts. This behavior can be
    changed, either for all feeds or for one or another particular feed.

    There are now three different options for an unfamiliar author: (1)
    FeedWordPress can create a new author account and attribute the
    syndicated post to the new account; (2) FeedWordPress can attribute the
    post to an author if the author’s name is familiar, and to a default
    author (currently, this means the Site Administrator account) if it is
    not; (3) FeedWordPress can drop posts by unfamiliar authors and
    syndicate only posts by authors who are already in the database.

    There are, similarly, two different options for an unfamiliar category:
    (1) FeedWordPress can create new categories and place the syndicated
    post in them; (2) FeedWordPress can drop the unfamiliar categories and
    place syndicated posts only in categories that it is already familiar
    with. In addition, FeedWordPress 0.95 lets you choose whether posts that
    are in no familiar categories should be syndicated (and placed in the
    default category for the blog) or simply dropped.

    You can set the default behavior for both authors and categories using
    the settings in Options –> Syndication. You can also set different
    behavior for specific feeds by adding the unfamiliar author and / or
    unfamiliar categories settings to the Link Notes section of a feed:

    unfamiliar author: (create|default|filter)
    unfamiliar categories: (create|default|filter)
    

    A setting of unfamiliar author: create will make FeedWordPress create
    new authors to match unfamiliar author names for this feed alone. A
    setting of unfamiliar author: default will make it assign posts from
    unfamiliar authors to the default user account. A setting of
    unfamiliar author: filter will cause all posts (from this feed alone)
    to be dropped unless they are by an author already listed in the
    database. Similiarly, unfamiliar categories: create will make
    FeedWordPress create new categories to match unfamiliar category names
    for this feed alone; unfamiliar categories: default will cause it
    to drop any unfamiliar category names; and
    unfamiliar categories: filter will cause it to both drop any
    unfamiliar category names and to only syndicate posts that are placed
    in one or more familiar categories.

    These two new features allow users to do some coarse-grained filtering
    without having to write a PHP filter. Specifically, they offer an easy
    way for you to filter feeds by category or by author. Suppose, for
    example, that you only wanted to syndicate posts that your contributors
    place in the “Llamas” category. You could do so by setting up your
    installation of WordPress so that the only category in the database is
    “Llamas,” and then use Options –> Syndication to set “Unfamiliar
    categories” to “don’t create new categories and don’t syndicate posts
    unless they match at least one familiar category”. Now, when you update,
    only posts in the “Llamas” category will be syndicated by FeedWordPress.

    Similarly, if you wanted to filter one particular feed so that only
    posts by (for example) the author “Earl J. Llama” were syndicated to
    your site, you could do so by creating a user account for Earl J. Llama,
    then adding the following line to the settings for the feed in Link
    Notes:

    unfamiliar author: filter
    

    This will cause any posts from this feed that are not authored by Earl
    J. Llama to be discarded, and only the posts by Earl J. Llama will be
    syndicated. (If the setting is used on one specific feed, it will not
    affect how posts from other feeds are syndicated.)