| @@ -1,11 +1,11 @@ | ||
| 1 | 1 | === FeedWordPress === |
| 2 | 2 | Contributors: Charles Johnson |
| 3 | -Donate link: http://projects.radgeek.com/feedwordpress/ | |
| 3 | +Donate link: http://feedwordpress.radgeek.com/ | |
| 4 | 4 | Tags: syndication, aggregation, feed, atom, rss |
| 5 | -Requires at least: 1.5 | |
| 6 | -Tested up to: 2.5.1 | |
| 7 | -Stable tag: 0.993 | |
| 5 | +Requires at least: 2.8 | |
| 6 | +Tested up to: 3.0 | |
| 7 | +Stable tag: 2010.0602 | |
| 8 | 8 | |
| 9 | 9 | FeedWordPress syndicates content from feeds you choose into your WordPress weblog. |
| 10 | 10 | |
| 11 | 11 | == Description == |
| @@ -17,41 +17,39 @@ | ||
| 17 | 17 | FeedWordPress is an Atom/RSS aggregator for WordPress. It syndicates content |
| 18 | 18 | from feeds that you choose into your WordPress weblog; if you syndicate several |
| 19 | 19 | feeds then you can use WordPress's posts database and templating engine as the |
| 20 | 20 | back-end of an aggregation ("planet") website. It was developed, originally, |
| 21 | -because I needed a more flexible replacement for [Planet](http://www.planetplanet.org/) | |
| 22 | -to use at [Feminist Blogs](http://feministblogs.org/). | |
| 21 | +because I needed a more flexible replacement for [Planet][] | |
| 22 | +to use at [Feminist Blogs][]. | |
| 23 | 23 | |
| 24 | +[Planet]: http://www.planetplanet.org/ | |
| 25 | +[Feminist Blogs]: http://feministblogs.org/ | |
| 26 | + | |
| 24 | 27 | FeedWordPress is designed with flexibility, ease of use, and ease of |
| 25 | 28 | configuration in mind. You'll need a working installation of WordPress or |
| 26 | -WordPress MU (versions [2.5][], [2.3][], [2.2][], [2.1][], [2.0][] or [1.5][]), | |
| 27 | -and also FTP or SFTP access to your web host. The ability to create cron jobs on | |
| 28 | -your web host is helpful but not absolutely necessary. You *don't* need to tweak | |
| 29 | -any plain-text configuration files and you *don't* need shell access to your web | |
| 30 | -host to make it work. (Although, I should point out, web hosts that *don't* | |
| 31 | -offer shell access are *bad web hosts*.) | |
| 29 | +WordPress MU (version [2.8] or later), and also FTP or SFTP access to your web | |
| 30 | +host. The ability to create cron jobs on your web host is helpful but not | |
| 31 | +required. You *don't* need to tweak any plain-text configuration files and you | |
| 32 | +*don't* need shell access to your web host to make it work. (Although, I should | |
| 33 | +point out, web hosts that *don't* offer shell access are *bad web hosts*.) | |
| 32 | 34 | |
| 33 | - [2.5]: http://codex.wordpress.org/Version_2.5 | |
| 34 | - [2.3]: http://codex.wordpress.org/Version_2.3 | |
| 35 | - [2.2]: http://codex.wordpress.org/Version_2.2 | |
| 36 | - [2.1]: http://codex.wordpress.org/Version_2.1 | |
| 37 | - [2.0]: http://codex.wordpress.org/Version_2.0 | |
| 38 | - [1.5]: http://codex.wordpress.org/Version_1.5 | |
| 35 | + [WordPress]: http://wordpress.org/ | |
| 36 | + [WordPress MU]: http://mu.wordpress.org/ | |
| 37 | + [2.8]: http://codex.wordpress.org/Version_2.8 | |
| 39 | 38 | |
| 40 | 39 | == Installation == |
| 41 | 40 | |
| 42 | -To use version 0.993 of FeedWordPress, you will need: | |
| 41 | +To use FeedWordPress, you will need: | |
| 43 | 42 | |
| 44 | -* an installed and configured copy of WordPress version 2.3.x, 2.2.x, | |
| 45 | - 2.1.x, 2.0.x, or 1.5.x. (FeedWordPress will also work with the | |
| 46 | - equivalent versions of WordPress MU.) | |
| 43 | +* an installed and configured copy of [WordPress][] or [WordPress MU][] | |
| 44 | + (version 2.8 or later). | |
| 47 | 45 | |
| 48 | -* FTP or SFTP access to your web host | |
| 46 | +* FTP, SFTP or shell access to your web host | |
| 49 | 47 | |
| 50 | 48 | = New Installations = |
| 51 | 49 | |
| 52 | -1. Download the FeedWordPress archive in zip or gzipped tar format and | |
| 53 | - extract the files on your computer. | |
| 50 | +1. Download the FeedWordPress installation package and extract the files on | |
| 51 | + your computer. | |
| 54 | 52 | |
| 55 | 53 | 2. Create a new directory named `feedwordpress` in the `wp-content/plugins` |
| 56 | 54 | directory of your WordPress installation. Use an FTP or SFTP client to |
| 57 | 55 | upload the contents of your FeedWordPress archive to the new directory |
| @@ -56,69 +54,35 @@ | ||
| 56 | 54 | directory of your WordPress installation. Use an FTP or SFTP client to |
| 57 | 55 | upload the contents of your FeedWordPress archive to the new directory |
| 58 | 56 | that you just created on your web host. |
| 59 | 57 | |
| 60 | -3. Upgrade the copy of MagpieRSS packaged with WordPress by installing the | |
| 61 | - new copies of `rss.php` and `rss-functions.php` into the `wp-includes` | |
| 62 | - directory of your FeedWordPress installation. These files are stored in | |
| 63 | - the `MagpieRSS-upgrade` directory of your FeedWordPress archive. Strictly | |
| 64 | - speaking, upgrading MagpieRSS is optional; FeedWordPress will run | |
| 65 | - correctly without the upgrade. But if you hope to take advantage of | |
| 66 | - numerous bug fixes, or support for Atom 1.0, multiple post categories, | |
| 67 | - RSS enclosures, or multiple character encodings, then you need to | |
| 68 | - install the upgrade. | |
| 58 | +3. Log in to the WordPress Dashboard and activate the FeedWordPress plugin. | |
| 69 | 59 | |
| 70 | -4. Log in to the WordPress Dashboard and activate the FeedWordPress plugin. | |
| 60 | +4. Once the plugin is activated, a new **Syndication** section should | |
| 61 | + appear in your WordPress admin menu. Click here to add new syndicated | |
| 62 | + feeds, set up configuration options, and determine how FeedWordPress | |
| 63 | + will check for updates. For help, see the [FeedWordPress Quick Start][] | |
| 64 | + page. | |
| 65 | + | |
| 66 | +[FeedWordPress Quick Start]: http://feedwordpress.radgeek.com/wiki/quick-start | |
| 71 | 67 | |
| 72 | -5. Once the plugin is activated, you can go to **Syndication --> Options** | |
| 73 | - and set (1) the link category that FeedWordPress will syndicate links | |
| 74 | - from (by default, "Contributors"), and (2) whether FeedWordPress will | |
| 75 | - use automatic updates or only manual updates. | |
| 76 | - | |
| 77 | -5. Go to the main **Syndication** page to set up the list of sites that | |
| 78 | - you want FeedWordPress to syndicate onto your blog. | |
| 79 | - | |
| 80 | 68 | = Upgrades = |
| 81 | 69 | |
| 82 | -To *upgrade* an existing installation of FeedWordPress to version 0.993: | |
| 70 | +To *upgrade* an existing installation of FeedWordPress to the most recent | |
| 71 | +release: | |
| 83 | 72 | |
| 84 | -1. Download the FeedWordPress archive in zip or gzipped tar format and | |
| 85 | - extract the files on your computer. | |
| 73 | +1. Download the FeedWordPress installation package and extract the files on | |
| 74 | + your computer. | |
| 86 | 75 | |
| 87 | -2. If you are upgrading from version 0.98 or earlier, then you need to | |
| 88 | - create a new directory named `feedwordpress` in the `wp-content/plugins` | |
| 89 | - directory of your WordPress installation, and you also need to *delete* | |
| 90 | - your existing `wp-content/update-feeds.php` and | |
| 91 | - `wp-content/plugins/feedwordpress.php` files. The file structure for | |
| 92 | - FeedWordPress has changed and the files from your old version will not | |
| 93 | - be overwritten, which could cause conflicts if you leave them in place. | |
| 76 | +2. Upload the new PHP files to `wp-content/plugins/feedwordpress`, | |
| 77 | + overwriting any existing FeedWordPress files that are there. | |
| 78 | + | |
| 79 | +3. Log in to your WordPress administrative interface immediately in order | |
| 80 | + to see whether there are any further tasks that you need to perform | |
| 81 | + to complete the upgrade. | |
| 94 | 82 | |
| 95 | -3. Upload the new PHP files to `wp-content/plugins/feedwordpress`, | |
| 96 | - overwriting any existing FeedWordPress files that are there. Also be | |
| 97 | - sure to upgrade the MagpieRSS module by uploading `rss.php` and | |
| 98 | - `rss-functions.php` from the `MagpieRSS-upgrade` directory in your | |
| 99 | - archive to the `wp-includes` directory of your WordPress installation. | |
| 83 | +4. Enjoy your newer and hotter installation of FeedWordPress | |
| 100 | 84 | |
| 101 | -3. If you are upgrading from version 0.96 or earlier, **immediately** log | |
| 102 | - in to the WordPress Dashboard, and go to **Options --> Syndicated**. | |
| 103 | - Follow the directions to launch the database upgrade procedure. The new | |
| 104 | - versions of FeedWordPress incorporate some long-needed improvements, but | |
| 105 | - old meta-data needs to be updated to prevent duplicate posts and other | |
| 106 | - possible maladies. If you're upgrading an existing installation, updates | |
| 107 | - and FeedWordPress template functions *will not work* until you've done | |
| 108 | - the upgrade. Then take a coffee break while the upgrade runs. It should, | |
| 109 | - hopefully, finish within a few minutes even on relatively large | |
| 110 | - databases. | |
| 111 | - | |
| 112 | -4. If you are upgrading from version 0.98 or earlier, note that the old | |
| 113 | - `update-feeds.php` has been eliminated in favor of a (hopefully) more | |
| 114 | - humane method for automatic updating. If you used a cron job for | |
| 115 | - scheduled updates, it will not work anymore, but there is another, | |
| 116 | - simpler method which will. See [Setting Up Feed Updates](http://projects.radgeek.com/feedwordpress/install/#setting-up-feed-updates) | |
| 117 | - to get scheduled updates back on track. | |
| 118 | - | |
| 119 | -5. Enjoy your new installation of FeedWordPress. | |
| 120 | - | |
| 121 | 85 | == Using and Customizing FeedWordPress == |
| 122 | 86 | |
| 123 | 87 | FeedWordPress has many options which can be accessed through the WordPress |
| 124 | 88 | Dashboard, and a lot of functionality accessible programmatically through |
| @@ -124,13 +88,1273 @@ | ||
| 124 | 88 | Dashboard, and a lot of functionality accessible programmatically through |
| 125 | 89 | WordPress templates or plugins. For further documentation of the ins and |
| 126 | 90 | outs, see the documentation at the [FeedWordPress project homepage][]. |
| 127 | 91 | |
| 128 | - [FeedWordPress project homepage]: http://projects.radgeek.com/feedwordpress/ | |
| 92 | + [FeedWordPress project homepage]: http://feedwordpress.radgeek.com/ | |
| 129 | 93 | |
| 94 | +== Changelog == | |
| 95 | + | |
| 96 | += 2010.0602 = | |
| 97 | + | |
| 98 | +* CATEGORY BOX INTERFACE ELEMENT FIXED FOR WP 3.0: Stylesheet changes | |
| 99 | + between WordPress 2.9.x and the WordPress 3.0 RC caused the Categories | |
| 100 | + box under **Syndication --> Categories & Tags** to malfunction. This | |
| 101 | + has been fixed. | |
| 102 | + | |
| 103 | +* LINK CATEGORY SELECTION BOX IN SYNDICATION ==> FEEDS FIXED FOR WP 2.8 | |
| 104 | + AND 2.9: A WP 3.0 compatibility change introduced in 2010.0531 | |
| 105 | + inadvertently broke the Syndicated Link Category selector under | |
| 106 | + Syndication --> Feeds & Updates in WP 2.8 and WP 2.9, causing the post | |
| 107 | + categories to be displayed in the selector rather than the link | |
| 108 | + categories. This should now be fixed so that the selector will work | |
| 109 | + correctly under both the current versions of WordPress and the 3.0 RC. | |
| 110 | + | |
| 111 | +* MORE PERMISSIVE HANDLING OF FEEDS WITH BAD CONTENT-TYPE HEADERS: One of | |
| 112 | + the small advantages that MagpieRSS had over SimplePie is that it was | |
| 113 | + more tolerant about parsing well-formed feeds that the remote web server | |
| 114 | + happened to deliver with weird or incorrect HTTP Content-type headers. | |
| 115 | + In feeds affected by this problem, the new SimplePie parser would simply | |
| 116 | + fail to find a feed, due to its being led astray by the contents of the | |
| 117 | + Content-type header. This version includes an extension to SimplePie's | |
| 118 | + content-type sniffer that offers more permissive handling of the HTTP | |
| 119 | + headers. | |
| 120 | + | |
| 121 | +* MORE FULL-TEXT "EXCERPTS" NOW PROPERLY SHORTENED. Version 2010.0528 | |
| 122 | + introduced code to control for cases in which elements intended for | |
| 123 | + item summaries are (ill-advisedly) used to carry the full text of posts; | |
| 124 | + past versions of FeedWordPress would simply include the full text of the | |
| 125 | + post in the excerpt field, but newer versions now attempt to detect | |
| 126 | + this condition when it arises and to head it off, by blanking out the | |
| 127 | + excerpt field and filling it with an automatically generated short, | |
| 128 | + plain text excerpt from the full content. This release broadens the | |
| 129 | + test conditions that indicate when an excerpt field is treated as | |
| 130 | + identical to the full text of the post, and should therefore improve | |
| 131 | + the handling of some feeds (such as Google Reader feeds) where the full | |
| 132 | + text of each post was still appearing in the excerpt field. | |
| 133 | + | |
| 134 | +* FILTERS: `syndicated_item_published` AND `syndicated_item_updated` | |
| 135 | + FILTERS NOW ALLOW FILTER AUTHORS TO CHANGE POST TIMESTAMPS. You can now | |
| 136 | + use the `syndicated_item_published` and `syndicated_item_updated` filter | |
| 137 | + hooks to write filters or add-ons which directly change the post date | |
| 138 | + and most-recently-updated timestamps on incoming syndicated posts. Props | |
| 139 | + to niska for pointing out where the filters needed to be applied in | |
| 140 | + order to change WordPress's internal timestamps for incoming posts. | |
| 141 | + | |
| 142 | += 2010.0531 = | |
| 143 | + | |
| 144 | +* PERMALINK / CUSTOM FIELDS PROBLEM RESOLVED: An issue in 2010.0528 caused | |
| 145 | + some posts to be imported without the proper syndication-related | |
| 146 | + meta-data being attached (thus causing permalinks to point back to the | |
| 147 | + aggregator website rather than to the source website, among other | |
| 148 | + problems). This problem has been resolved (and a fix has been applied | |
| 149 | + which will resolve the problem for any posts affected by this problem, | |
| 150 | + if the original post is recent enough to still be available on the feed). | |
| 151 | + | |
| 152 | +* UI: The "Back End" section has been split into two separate sections -- | |
| 153 | + "Performance" (dealing with caching, database index, and other | |
| 154 | + performance tweaks), and "Diagnostics" (dealing with debug mode, | |
| 155 | + update logging, and a number of new diagnostic tests which I will be | |
| 156 | + rolling out over the next few releases). | |
| 157 | + | |
| 158 | +* Several minor interface bug fixes and PHP warning notices eliminated. | |
| 159 | + | |
| 160 | += 2010.0528 = | |
| 161 | + | |
| 162 | +#### Compatibility #### | |
| 163 | + | |
| 164 | +* SIMPLEPIE IS NOW USED TO PARSE FEEDS; NO MORE MAGPIERSS UPGRADES NEEDED: | |
| 165 | + One of the biggest changes in this release is that FeedWordPress no | |
| 166 | + longer depends on MagpieRSS to parse feeds, and has switched to the much | |
| 167 | + more up-to-date and flexible SimplePie feed parser, which is included as | |
| 168 | + a standard part of WordPress versions 2.8 and later. Using SimplePie will | |
| 169 | + hopefully allow for better handling of feeds going further, and will | |
| 170 | + allow me greater flexibility in determining how exactly the feed parser | |
| 171 | + will operate. It also means that FeedWordPress no longer requires | |
| 172 | + special upgrades to the WordPress core MagpieRSS files, and should | |
| 173 | + eliminate quite a bit of complexity. | |
| 174 | + | |
| 175 | +* MAGPIERSS COMPATIBILITY LAYER FOR EXISTING FILTERS AND ADD-ONS: However, | |
| 176 | + I have also implemented a compatibility layer to ensure that existing | |
| 177 | + filters and add-ons for FeedWordPress which depended on the MagpieRSS | |
| 178 | + data format *should not be broken* by the switch to SimplePie. Going | |
| 179 | + forward, I recommend that new filters and add-ons be written to take | |
| 180 | + advantage of the SimplePie object representations of items, feeds, etc., | |
| 181 | + rather than the MagpieRSS arrays, but the MagpieRSS arrays will still | |
| 182 | + be available and older filters should continue to work as they have in | |
| 183 | + the past. | |
| 184 | + | |
| 185 | +* COMPATIBILITY WITH WORDPRESS 2.9.x and 3.0: This release has been tested | |
| 186 | + for the existing WordPress 2.9.x branch and with the upcoming release of | |
| 187 | + WordPress 3.0. Changes in the user interface JavaScript between WordPress | |
| 188 | + 2.8.x and WordPress 2.9 caused the tag box interface element to break in | |
| 189 | + the Syndication --> Categories & Tags settings page; changes in the API | |
| 190 | + functions for adding new authors caused fatal errors under certain | |
| 191 | + conditions in WordPress 3.0. These breakages have been fixed. | |
| 192 | + | |
| 193 | +* DROPPED LEGACY SUPPORT FOR WORDPRESS PRIOR TO 2.8: Because SimplePie is | |
| 194 | + not included with versions of WordPress prior to 2.8, I have chosen to | |
| 195 | + drop legacy support for WordPress versions 1.5 through 2.7. If you are | |
| 196 | + using FeedWordPress with a version of WordPress before 2.8, you will | |
| 197 | + have to upgrade your installation of WordPress in order to take | |
| 198 | + advantage of this release. | |
| 199 | + | |
| 200 | +* PHP 5.3 COMPATIBILITY: A couple of compatibility issues, which were | |
| 201 | + causing fatal errors amd ugly warnings for users of PHP 5.3, | |
| 202 | + have been eliminated. | |
| 203 | + | |
| 204 | +#### Features and Processing #### | |
| 205 | + | |
| 206 | +* INTERFACE REORGANIZATION: The interface restructuring, began with | |
| 207 | + Version 2009.0612, has been completed. Catch-all settings pages have | |
| 208 | + been eliminated entirely for pages that cover each aspect of handling | |
| 209 | + a feed: Feeds & Updates, Posts & Links, Authors, Categories & Tags, | |
| 210 | + and Back End handling of the database and diagnostic information. | |
| 211 | + Extensive new interface hooks allow add-on modules to significantly | |
| 212 | + change or extend the FeedWordPress admin interface and workflow. | |
| 213 | + | |
| 214 | +* STORING INFORMATION FROM THE FEED IN CUSTOM FIELDS: Many users | |
| 215 | + have written to request the ability to store information from elements | |
| 216 | + in the feed in a custom field on each post. (So that, for example, if | |
| 217 | + post includes a `itunes:duration` element, you could store the contents | |
| 218 | + in a Custom Field called `duration` on the post (for a Theme to access | |
| 219 | + later). The Custom Post Settings under Syndication --> Posts & Links now | |
| 220 | + allow you to access any item or feed tag, using a syntax similar to | |
| 221 | + a much-simplified version of XPath. See Posts & Links settings for | |
| 222 | + details. | |
| 223 | + | |
| 224 | +* UPDATE-FREEZING ON MANUALLY EDITED POSTS: FeedWordPress now allows you | |
| 225 | + to mark posts that have been manually edited, so that the changes you | |
| 226 | + make will not be overwritten by later updates from the feed. If you make | |
| 227 | + manual edits to a particular post, just check the "Manual editing" | |
| 228 | + checkbox in order to protect your changes from being overwritten. If you | |
| 229 | + want to block *all* posts from being updated after they are imported | |
| 230 | + for the first time, a new "Updated Posts" setting in Posts & Links | |
| 231 | + allows you to freeze all posts from a particular feed, or all syndicated | |
| 232 | + posts. | |
| 233 | + | |
| 234 | +* SETTING: FEED-BY-FEED SETTINGS FOR WHERE PERMALINKS POINT TO: You've | |
| 235 | + always been able to tell FeedWordPress whether permalinks for posts | |
| 236 | + should point to the original source of the story or the local copy. Now | |
| 237 | + you can choose different policies for different feeds, instead of one | |
| 238 | + global policy for all feeds. (Of course, you can still use a global | |
| 239 | + default if you prefer.) | |
| 240 | + | |
| 241 | +* SETTING: USER CONTROL OVER TIMING BASIS. You can now determine the | |
| 242 | + schedule on which feeds are considered ready to poll for updates -- | |
| 243 | + by default feeds become ready for polling after about 1 hour. You can | |
| 244 | + now increase or decrease the time window under Syndication --> Feeds & | |
| 245 | + Updates. (However, please pay *CAREFUL ATTENTION* to the recommendations | |
| 246 | + and DO NOT set the scheduling lower than 60 minutes unless you are | |
| 247 | + ABSOLUTELY SURE that you have specific permission from webmaster who | |
| 248 | + provides that specific feed to poll more frequently than that. If you | |
| 249 | + set this too low (and about 60 minutes is the polite minimum if you | |
| 250 | + haven't been given a different figure), most webmasters will consider | |
| 251 | + the frequent hits on their server as rude, or even downright abusive. | |
| 252 | + | |
| 253 | +* OTHER SETTINGS: New settings also include the ability to stop FWP from | |
| 254 | + resolving relative URLs within syndicated content, and the ability to | |
| 255 | + choose whether FeedWordPress should indicate the comment feed from the | |
| 256 | + original source, or the local comment feed, when providing the comment | |
| 257 | + feed URL for a syndicated post. | |
| 258 | + | |
| 259 | +#### PARSING #### | |
| 260 | + | |
| 261 | +* BETTER DATE HANDLING -- FEWER FLASHBACKS TO 1969 and 1970: FeedWordPress | |
| 262 | + has made some bugfixes and some improvements in the logic for parsing | |
| 263 | + dates. This should allow FeedWordPress to correctly parse more dates in | |
| 264 | + more feeds; and, in the last resort, when FeedWordPress fails to | |
| 265 | + correctly parse a date, to fall back to a more intelligent default. This | |
| 266 | + should hopefully avoid most or all error conditions that have resulted | |
| 267 | + in articles being erroneously dated to the dawn of the Unix epoch | |
| 268 | + (31 December 1969 or 1 January 1970). | |
| 269 | + | |
| 270 | +* FULL-TEXT "EXCERPTS" NOW PROPERLY SHORTENED. Based on a straightforward | |
| 271 | + reading of the existing RSS specs, it's reasonable for the | |
| 272 | + rss:description element to be read as a plaintext summary or excerpt for | |
| 273 | + the item containing the description -- with the full text of the item, | |
| 274 | + if available, in another, better-suited element, such as the de facto | |
| 275 | + standard content:encoded extension element. The problem is that uses of | |
| 276 | + RSS rarely have much to do with anything like a straightforward reading | |
| 277 | + of the specs. As a result, many actual RSS producers in the wild put the | |
| 278 | + full text of the article in a description element. But since | |
| 279 | + FeedWordPress has treated this text as a summary, this produces | |
| 280 | + aggregated posts with lengthy "excerpts" containing the full text of the | |
| 281 | + article. This release of FeedWordPress fixes the problem by doing a | |
| 282 | + little digging before treating rss:description as a summary: if the | |
| 283 | + description element is used properly as a plain text summary, then | |
| 284 | + FeedWordPress will take the summary provided by the feed, rather than | |
| 285 | + recreating its own excerpt from the full text; but if an RSS item has no | |
| 286 | + full-text element other than description, FeedWordPress will treat the | |
| 287 | + description element as the full text of the article, and generate a | |
| 288 | + shortened excerpt automatically from that text. | |
| 289 | + | |
| 290 | +#### API #### | |
| 291 | + | |
| 292 | +* TEMPLATE API: new template tags `get_local_permalink()` and | |
| 293 | + `the_local_permalink()` allow you to access the permalink for a post on | |
| 294 | + your aggregator site, even when FeedWordPress is rewriting permalinks to | |
| 295 | + point to the original source site. | |
| 296 | + | |
| 297 | +* NEW HOOKS FOR ADD-ONS AND FILTERS: I have added a number of new hooks | |
| 298 | + which allow add-on modules to filter more precisely, gather information | |
| 299 | + at more points, and to enhance the FeedWordPress admin interface. For | |
| 300 | + a list of new hooks and documentation, see the FeedWordPress | |
| 301 | + documentation wiki at | |
| 302 | + <http://feedwordpress.radgeek.com/wiki/add-ons-and-filters> | |
| 303 | + | |
| 304 | +* FILTER API: A number of new utility methods have been added to the | |
| 305 | + SyndicatedPost class to make it easier for filters and add-ons to | |
| 306 | + | |
| 307 | +* FILTER API: Globals $fwp_channel and $fwp_feedmeta DEPRECATED. These | |
| 308 | + global variables, originally introduced to allow filters access to | |
| 309 | + information about the source feed in `syndicated_item` filters (which | |
| 310 | + were passed in through global variables rather than as parameters | |
| 311 | + because of a bug in WP 1.5 which was then fixed in 1.5.1) have been | |
| 312 | + DEPRECATED. If you have any filters or add-ons which still depend on | |
| 313 | + these global variables, you should see about fixing them to access data | |
| 314 | + about the source feed using the SyndicatedPost::link element instead. | |
| 315 | + For documentation, see the FeedWordPress documentation wiki at | |
| 316 | + <http://feedwordpress.radgeek.com/wiki/syndicatedpost> and | |
| 317 | + <http://feedwordpress.radgeek.com/wiki/syndicatedlink>. | |
| 318 | + | |
| 319 | +* DIAGNOSTICS: I've included a number of new diagnostic options and | |
| 320 | + messages, which should allow an experienced user to better investigate | |
| 321 | + any problems that may crop up. | |
| 322 | + | |
| 323 | +#### Bug Fixes #### | |
| 324 | + | |
| 325 | +* BUGFIX: & IN PERMALINKS NO LONGER CAUSING ATOM OR HTML VALIDATION | |
| 326 | + EFFORTS: Many users reported an issue in which syndicating a feed with | |
| 327 | + special XML characters in the URLs (& was the most common, since it is | |
| 328 | + used to separate HTTP GET parameters) would cause the aggregator's | |
| 329 | + feeds to produce invalid (malformed) XML. This update addresses the | |
| 330 | + issue in Atom feeds. Unfortunately, it has not been technically possible | |
| 331 | + to address the problem in RSS 2.0 feeds, due to limitations on | |
| 332 | + WordPress's internal templates for RSS feeds. | |
| 333 | + | |
| 334 | +* BUGFIX: BROKEN URLS IN "POPULAR POSTS" AND SIMILAR PLUGINS SHOULD NO | |
| 335 | + LONGER BE BROKEN. A number of users noticed an issue where plugins and | |
| 336 | + templates that listed posts in locations outside of the post loop | |
| 337 | + (for example, "Popular Posts"-style plugins that listed posts in the | |
| 338 | + sidebar), often produced the wrong URL for post links. (Typically, all | |
| 339 | + the posts listed would get the same wrong URL.) This should now be | |
| 340 | + fixed. Thanks to Björn for sending in a quick fix! | |
| 341 | + | |
| 342 | +* MINOR BUGFIXES: This release includes a number of fixes to minor bugs | |
| 343 | + and compatibility issues, including: silent failures of the "Syndicate" | |
| 344 | + button, "Illegal Offset Type" error messages from MagpieRSS, and others. | |
| 345 | + | |
| 346 | += 2009.0707 = | |
| 347 | + | |
| 348 | +* BUGFIX: WORDPRESS 2.8 AJAX COMPATIBILITY ISSUES RESOLVED (blank or | |
| 349 | + truncated "Syndicated Sites" administration page): Due to changes in the | |
| 350 | + AJAX interface elements between WordPress 2.7 and WordPress 2.8, several | |
| 351 | + FeedWordPress users encountered an issue where the front "Syndication" | |
| 352 | + page in the FeedWordPress administrative interface would come up blank, | |
| 353 | + without the normal "Syndicated Sites" list and "Update" control, or | |
| 354 | + sometimes wth the boxes visible but one or both of them truncated, with | |
| 355 | + only the title bar. This issue should now be resolved: with the new | |
| 356 | + version of FeedWordPress, the compatibility issue that caused the | |
| 357 | + disappearance should be eliminated, and if boxes are shown with only | |
| 358 | + their handle visible, you should once again be able to drop down the | |
| 359 | + rest of the box by clicking once on its title bar. | |
| 360 | + | |
| 361 | +* BUGFIX: TAG SETTING WIDGET FIXED. Due to changes in interface elements | |
| 362 | + between WordPress 2.7 and WordPress 2.8, people using FeedWordPress with | |
| 363 | + WordPress 2.8 found that the widget for setting tags to be applied to | |
| 364 | + all syndicated posts, or all syndicated posts from a particular feed, | |
| 365 | + no longer displayed "Add" and "Remove" buttons for individual tags. This | |
| 366 | + issue has now been fixed, and the tagging widget should once again work | |
| 367 | + more or less exactly like the tagging widget for individual posts in the | |
| 368 | + normal WordPress admin interface. | |
| 369 | + | |
| 370 | += 2009.0618 = | |
| 371 | + | |
| 372 | +* BUGFIX: MYSTERY ERRORS WITH WITH WP_Http_Fsockopen HTTP TRANSPORT | |
| 373 | + ELIMINATED: Thanks to a combination of a subtle bug in FeedWordPress, | |
| 374 | + and changes to the HTTP transport code in WordPress, a number of users | |
| 375 | + encountered an error in which any time they attempted to add a new feed | |
| 376 | + through the FeedFinder interface, FeedWordPress would fail and display | |
| 377 | + an HTTP request failure diagnostic message. The subtle bug has been | |
| 378 | + fixed, and with it, most of these errors should now be eliminated. | |
| 379 | + | |
| 380 | + Be sure to upgrade your MagpieRSS to the most recent MagpieRSS version | |
| 381 | + after you have insalled FeedWordPress 2009.0618, or this bug fix will | |
| 382 | + not take effect. | |
| 383 | + | |
| 384 | += 2009.0613 = | |
| 385 | + | |
| 386 | +* INTERFACE/BUGFIX: WORDPRESS 2.8 CATEGORY BOX FIX. Thanks to a subtle | |
| 387 | + change in class names between the WordPress 2.7 and 2.8 stylesheets, | |
| 388 | + category boxes in the FeedWordPress settings interface tended to overflow | |
| 389 | + and have a lot of messy-looking overlapping text under WordPress 2.8. | |
| 390 | + This has now been fixed. | |
| 391 | + | |
| 392 | +* FeedFinder FAILURE DIAGNOSTICS: When FWP's FeedFinder fails to find any | |
| 393 | + feeds at a given URL (for example, when you are trying to add a | |
| 394 | + subscription through the administrative interface and you run into an | |
| 395 | + error message), FeedWordPress now provides more diagnostic information | |
| 396 | + for the reasons behind the failure. If that helps you, great; if not, | |
| 397 | + it should help me respond more intelligently to your support request.. | |
| 398 | + | |
| 399 | += 2009.0612 = | |
| 400 | + | |
| 401 | +* WORDPRESS 2.8 COMPATIBILITY: FeedWordPress 2009.0612 has been tested for | |
| 402 | + compatibility with the recent version 2.8 release of WordPress. | |
| 403 | + | |
| 404 | +* INTERFACE RESTRUCTURING: In order to avoid settings posts from becoming | |
| 405 | + too crowded, and to modularize and better organize the user interface, | |
| 406 | + new "Posts" and "Categories & Tags" subpages have been created under the | |
| 407 | + "Syndication" menu. "Posts" controls settings for individal syndicated | |
| 408 | + posts (such as publication status, comment and ping status, whether or | |
| 409 | + not to use the original location of the post as the permalink, whether | |
| 410 | + or not to expose posts to formatting filters, and so on). "Categories & | |
| 411 | + Tags" controls settings for assigning new syndicated posts to categories | |
| 412 | + and tags, such as categories or tags to apply to all syndicated posts, | |
| 413 | + and how to handle categories that do not yet exist in the WordPress | |
| 414 | + database. These subpages, like the Authors subpage, handle settings for | |
| 415 | + the global default level and for individual syndicated feeds. | |
| 416 | + | |
| 417 | + Corresponding to these new subpages, the old Syndication Settings and | |
| 418 | + Feed Settings subpages have been cleaned up and simplified, and now only | |
| 419 | + link to the appropriate subpages for options that can be set in the | |
| 420 | + Posts, Authors, or Categories & Tags subpages. | |
| 421 | + | |
| 422 | +* FEATURE: ADD CUSTOM SETTINGS TO EACH SYNDICATED POST: FeedWordPress has | |
| 423 | + long had an interface for creating custom settings for each syndicated | |
| 424 | + *feed* which could be retrieved in templates using the `get_feed_meta()` | |
| 425 | + template function. But it had no feature for adding custom fields to | |
| 426 | + each individual syndicated *post*. In response to requests from users, I | |
| 427 | + have added the ability to apply custom fields to each individual | |
| 428 | + syndicated post, using the new Syndication --> Posts subpage. You can | |
| 429 | + set up custom fields to be applied to every syndicated post, or custom | |
| 430 | + fields to be applied to syndicated posts from a particular feed. | |
| 431 | + | |
| 432 | +* FEATURE: MAGPIERSS VERSION CHECK AND UPGRADE: FeedWordPress will attempt | |
| 433 | + to determine whether or not you are using the upgraded version of | |
| 434 | + MagpieRSS that comes packaged with FeedWordPress. If not, it will throw | |
| 435 | + an error on admin pages, and, if you are a site administrator, it will | |
| 436 | + give you the option to ignore the error message, or to attempt an | |
| 437 | + automatic upgrade (using a native file copy). If the file copy fails, | |
| 438 | + FeedWordPress will offer some guidance on how to perform the upgrade | |
| 439 | + manually. | |
| 440 | + | |
| 441 | +* BLANK POSTS PROBLEM NO LONGER OCCURS WITH OLD & BUSTED MAGPIERSS: Due | |
| 442 | + to the fact that I relied on a content normalization that occurs in my | |
| 443 | + upgraded version of MagpieRSS, but not in the old & busted version of | |
| 444 | + MagpieRSS that ships with WordPress, until this version, if you tried to | |
| 445 | + syndicate an Atom feed without having performed the (*strongly | |
| 446 | + recommended*) MagpieRSS upgrade, all of the posts would come up with | |
| 447 | + completely blank contents. That's not because MagpieRSS couldn't read | |
| 448 | + the data, but rather because the new Magpie version puts that data in a | |
| 449 | + location where the old version doesn't, and I was only looking in that | |
| 450 | + newer location. Now it checks for both, meaning that posts will continue | |
| 451 | + to display their contents even if you don't upgrade MagpieRSS. (But you | |
| 452 | + **really should** upgrade it, anyway.) | |
| 453 | + | |
| 454 | +* BUGFIX: RELATIVE URI RESOLUTION FOR POST CONTENT RESTORED. Some time | |
| 455 | + back, I added support for resolving relative URIs against xml:base on | |
| 456 | + feeds that support it to the MagpieRSS upgrade in FeedWordPress. Then I | |
| 457 | + took out code that did the same thing from the main FeedWordPress code. | |
| 458 | + Of course, the problem is that some people, even though it is clearly | |
| 459 | + stupid or evil to do so, still include relative URIs for images or links | |
| 460 | + in posts on feed formats that do *not* adequately support xml:base | |
| 461 | + (notably, RSS 2.0 feeds). In response to a user request, I have added | |
| 462 | + this functionality back in, so that MagpieRSS will resolve any relative | |
| 463 | + URIs that it knows how to resolve using xml:base, and then FeedWordPress | |
| 464 | + will attempt to resolve any relative URIs that are left over afterwards. | |
| 465 | + | |
| 466 | +* BUGFIX: INTERFACE OPTION FOR SETTING SYNDICATED POST PUBLICATION STATUS | |
| 467 | + ON A FEED-BY-FEED BASIS HAS BEEN RESTORED: Due to a version-checking | |
| 468 | + bug, users of WordPress 2.7.x lost an option from the "Edit a syndicated | |
| 469 | + feed" interface which allowed them to determine whether newly syndicated | |
| 470 | + posts should be published immediately, held as "Pending Review," saved | |
| 471 | + as drafts, or saved as private posts. (The option to change this | |
| 472 | + setting globally remained in place, but users could no longer set it on | |
| 473 | + a feed-by-feed basis.) The version-checking bug has been fixed, and the | |
| 474 | + option has been restored. | |
| 475 | + | |
| 476 | +* BUGFIX: "ARE YOU SURE?" FATAL ERROR ELIMINATED AND SECURITY IMPROVED: | |
| 477 | + Under certain circumstances (for example, when users have configured | |
| 478 | + their browser or proxy not to send HTTP Referer headers, for privacy or | |
| 479 | + other reasons), many features in the FeedWordPress administrative | |
| 480 | + interface (such as adding new feeds or changing settings) would hit a | |
| 481 | + fatal error, displaying only a cryptic message reading "Are you sure?" | |
| 482 | + and a blank page following it. This problem has been eliminated by | |
| 483 | + taking advantage of WordPress's nonce functions, which allow the | |
| 484 | + security check which ran into this error to work properly even without | |
| 485 | + receiving an HTTP Referer header. (N.B.: WordPress's nonce functions | |
| 486 | + were first introduced in WordPress 2.0.3. If you're using FeedWordPress | |
| 487 | + with an older version of WordPress, there's no fix for this problem: | |
| 488 | + you'll just need to turn Referer headers back on. Sorry.) | |
| 489 | + | |
| 490 | +* BUGFIX: MANUALLY-ALTERED POST STATUS, COMMENT STATUS, AND PING STATUS NO | |
| 491 | + LONGER REVERTED BY POST UPDATES: If you manually altered the post status, | |
| 492 | + comment status, or ping status of a syndicated post from what it was set | |
| 493 | + to when first syndicated -- for example, if you had a feed that was set | |
| 494 | + to bring in new posts as "Pending Review," and you then marked some of | |
| 495 | + the pending posts as "Published" and others as "Unpublished" -- then | |
| 496 | + in previous versions of FeedWordPress, these manual changes to the | |
| 497 | + status would be lost -- so that, for example, your Published or Unpublished | |
| 498 | + articles would revert to Pending Review -- if the source feed made any | |
| 499 | + upates to the item. This could make the Pending Review feature both | |
| 500 | + unreliable and also extremely frustrating to work with. The good news is | |
| 501 | + that this bug has since been fixed: if you manually update the status | |
| 502 | + of a post, it will no longer be reverted if or when the post is updated. | |
| 503 | + | |
| 504 | +* BUGFIX: OCCASIONAL FATAL ERROR ON UPDATE ELIMINATED: Under certain | |
| 505 | + limited conditions (specifically, when both the title and the content of | |
| 506 | + a post to be updated are empty), an attempt to update the post would | |
| 507 | + result in a fatal error. This has been fixed. | |
| 508 | + | |
| 509 | +* INTERFACE: "CONFIGURE SETTINGS" CONVENIENCE LINK ADDED TO CONFIRMATION | |
| 510 | + MESSAGE WHEN A NEW FEED IS ADDED: When you add a new subscription to | |
| 511 | + FeedWordPress, the message box that appears to confirm it now includes a | |
| 512 | + handy link to the feed's settings subpage, so that you can quickly set | |
| 513 | + up any special settings you may want to set up for the new feed, without | |
| 514 | + having to hunt through the list of all your other subscriptions to pick | |
| 515 | + out the new one. | |
| 516 | + | |
| 517 | +* INTERFACE: SIMPLIFYING AND CLARIFYING AUTOMATIC UPDATES SETTINGS. I have | |
| 518 | + removed an interval setting for the cronless automatic updates which has | |
| 519 | + confused many FeedWordPress users. In past versions of FWP, when you | |
| 520 | + turned on automatic updates, you would be presented with a time interval | |
| 521 | + setting which controlled how often FeedWordPress would check for feeds | |
| 522 | + ready to be polled for updates. (That is, it DID NOT control how often | |
| 523 | + feeds *would be polled*; it controlled how often FeedWordPress would | |
| 524 | + *check* for feeds that *had become ready to poll*. The schedule on which | |
| 525 | + feeds became ready for polling was still controlled either by requests | |
| 526 | + encoded in elements within the feed itself, or else according to an | |
| 527 | + internal calculation within FeedWordPress, averaging out to about 1 hour, | |
| 528 | + if the feed did not include any scheduling request elements.) Since many | |
| 529 | + users very often (and understandably) confused the purpose of this | |
| 530 | + setting, and since the setting is for a feature that's actually very | |
| 531 | + unlikely to require any manual control by the user, I have removed the | |
| 532 | + setting; FeedWordPress now simply uses the default value of checking for | |
| 533 | + feeds to poll every 10 minutes. | |
| 534 | + | |
| 535 | +* FEEDFINDER PERFORMANCE IMPROVEMENT: FeedWordPress's FeedFinder class | |
| 536 | + now uses `array_unique()` to make sure that it doesn't waste time | |
| 537 | + repeatedly iterating over and polling the same URI. Props to Camilo | |
| 538 | + (<http://projects.radgeek.com/2008/12/14/feedwordpress-20081214/#comment-20090122160414>). | |
| 539 | + | |
| 540 | += 2008.1214 = | |
| 541 | + | |
| 542 | +* WORDPRESS 2.7 COMPATIBILITY: FeedWordPress has been tested for | |
| 543 | + compatibility with the newly released WordPress 2.7. WordPress 2.7 has | |
| 544 | + deprecated the Snoopy library for HTTP requests, which caused a fatal | |
| 545 | + error for users who had not installed the MagpieRSS upgrade (or whose | |
| 546 | + installation of the MagpieRSS upgrade was overwritten by a recent update | |
| 547 | + of WordPress). FeedWordPress now handles things gracefully when Snoopy | |
| 548 | + is not immediately available. | |
| 549 | + | |
| 550 | +* INTERFACE SPIFFED UP: Interface elements have been updated so that | |
| 551 | + FeedWordPress's management interface fits in more naturally with the | |
| 552 | + WordPress 2.7 interface (including a new logo and a number of small | |
| 553 | + interface tweaks). | |
| 554 | + | |
| 555 | +* BUG WITH TAGS FOR SYNDICATED ARTICLES FIXED: Several users encountered a | |
| 556 | + bug with the option to add tags to all syndicated posts under | |
| 557 | + Syndication --> Settings -- if you told FeedWordPress to add more than | |
| 558 | + one tag to all syndicated posts, instead of doing so correctly, it would | |
| 559 | + add a *single* tag instead, whose name was composed of the names of all | |
| 560 | + the tags you asked it to add. This bug was the result of nothing more | |
| 561 | + dignified than a typographical error on my part. It has now been fixed. | |
| 562 | + | |
| 563 | +* MORE INFORMATION AVAILABLE WHEN FEEDWORDPRESS CAN'T FIND A FEED: When | |
| 564 | + you enter a URL for a new syndication source, FeedWordPress uses a | |
| 565 | + simple feed-finding algorithm (originally based on Mark Pilgrim's | |
| 566 | + Universal Feed Finder) to try to determine whether the URL is the URL | |
| 567 | + for a feed, or, if the URL points to an ordinary website rather than to | |
| 568 | + a feed, whether there is a feed for that website. All well and good, but | |
| 569 | + if FeedWordPress failed to find a feed, for whatever reason, it would | |
| 570 | + typically return nothing more than a nasty little note to the effect of | |
| 571 | + "no feed found," without any explanation of what went wrong. | |
| 572 | + FeedWordPress now keeps track of error conditions from the HTTP | |
| 573 | + requests that it uses in the course of looking for the feed, and so may | |
| 574 | + be able to give you a bit more information about the nature of the | |
| 575 | + problem if something goes wrong. | |
| 576 | + | |
| 577 | + | |
| 578 | += 2008.1105 = | |
| 579 | + | |
| 580 | +* INTERFACE RESTRUCTURING AND SYNDICATION --> AUTHORS PAGE: As a first | |
| 581 | + step towards modularizing and better organizing the user interface, a | |
| 582 | + new "Authors" subpage has been created under the Syndication menu, which | |
| 583 | + controls settings for syndicated authors, both at the global default | |
| 584 | + level and at level of individual syndicated feeds. | |
| 585 | + | |
| 586 | +* BUG RELATED TO THE ATTRIBUTION OF POSTS TO THE WRONG AUTHOR FIXED: Some | |
| 587 | + users encountered an issue in which posts by different authors on | |
| 588 | + different blogs -- especially blogs generated by Blogger -- were | |
| 589 | + mistakenly attributed to a single author. The problem was caused by the | |
| 590 | + way in which FeedWordPress matches syndicated authors to user accounts | |
| 591 | + in the WordPress database: normally, if two feeds each list an author | |
| 592 | + with the same e-mail address, they are counted as being the same person. | |
| 593 | + Normally this works well, but it creates an issue in cases where | |
| 594 | + blogging software assigns a single anonymous e-mail address to users who | |
| 595 | + do not want their real e-mail address published. This is, for example, | |
| 596 | + what Blogger does (by giving all users a default e-mail address of | |
| 597 | + <noreply@blogger.com> if they don't want their own e-mail address | |
| 598 | + listed). FeedWordPress now allows the user to correct for this problem | |
| 599 | + with a couple of new settings under **Syndication --> Authors**, which | |
| 600 | + allow users to turn off e-mail based author matching for particular | |
| 601 | + addresses, or, if desired, to turn it off entirely. By default, e-mail | |
| 602 | + based author matching is still turned on, but disabled for a list of | |
| 603 | + known generic e-mail addresses. Right now, the "list" consists entirely | |
| 604 | + of <noreply@blogger.com>; if you know other addresses that should be | |
| 605 | + added, please [contact me](http://radgeek.com/contact) to let me know. | |
| 606 | + | |
| 607 | + Please note that if you have already encountered this issue on your | |
| 608 | + blog, upgrading FeedWordPress will prevent it from re-occurring in the | |
| 609 | + future, but you still need to do two other things to fix the existing | |
| 610 | + problem on your blog. | |
| 611 | + | |
| 612 | + First, for each feed where posts have been mis-attributed, you need to | |
| 613 | + change the existing author mapping rules to re-map a a syndicated | |
| 614 | + author's name to the proper target account. Go to **Syndication --> | |
| 615 | + Authors**, select the feed you want to change from the drop-down list, | |
| 616 | + and then change the settings under the "Syndicated Authors" section. | |
| 617 | + (You will probably need to select "will be assigned to a new user..." to | |
| 618 | + create a new user account with the appropriate name.) | |
| 619 | + | |
| 620 | + Second, for each feed where posts have been mis-attributed, you need to | |
| 621 | + re-assign already-syndicated posts that were mis-attributed to the | |
| 622 | + correct author. You can do that from **Syndication --> Authors** by | |
| 623 | + using the author re-assignment feature, described below. | |
| 624 | + | |
| 625 | +* AUTHOR RE-ASSIGNMENT FOR A PARTICULAR FEED: The author settings page | |
| 626 | + for each syndicated feed, under **Syndication --> Authors**, now | |
| 627 | + includes an section titled "Fixing mis-matched authors," which provides | |
| 628 | + an interface for re-assigning or deleting all posts attributed to a | |
| 629 | + particular author on a particular feed. | |
| 630 | + | |
| 631 | +* SUPPORT FOR `<atom:source>` ELEMENT IN SYNDICATED FEEDS: Some feeds | |
| 632 | + (for example, those produced by FeedWordPress) aggregate content from | |
| 633 | + several different sources, and include information about the original | |
| 634 | + source of the post in an `<atom:source>` element. A new setting under | |
| 635 | + **Syndication --> Options** allows you to control what FeedWordPress | |
| 636 | + will report as the source of posts syndicated from aggregator feeds in | |
| 637 | + your templates and feeds: you can have FeedWordPress report that the | |
| 638 | + source of a post is the aggregator feed itself, or you can have it | |
| 639 | + report that the source of a post is the original source that the | |
| 640 | + aggregator originally syndicated the post from. | |
| 641 | + | |
| 642 | + By default, FeedWordPress will report the aggregator, not the original | |
| 643 | + source, as the source of a syndicated item. | |
| 644 | + | |
| 645 | +* LOAD BALANCING AND TIME LIMITING FEATURES FOR UPDATES: Some users have | |
| 646 | + encountered issues due to running up against PHP execution time limits | |
| 647 | + during the process of updating large syndicated feeds, or a very large | |
| 648 | + set of syndicated feeds. FeedWordPress now has a feature that allows you | |
| 649 | + to limit the total amount of time spent updating a feed, through the | |
| 650 | + "Time limit on updates" setting under **Syndication --> Options**. By | |
| 651 | + turning on this setting and adjusting the time limit to a low enough | |
| 652 | + figure to avoid your PHP installation's time-out setting. (PHP execution | |
| 653 | + time limits are usually in the vicinity of 30 seconds, so an update | |
| 654 | + time limit of 25 seconds or so should provide plenty of time for updates | |
| 655 | + while allowing a cushion of time for other, non-update-related functions | |
| 656 | + to do their work.) | |
| 657 | + | |
| 658 | + If feed updates are interrupted by the time limit, FeedWordPress uses | |
| 659 | + some simple load balancing features to make sure that updates to other | |
| 660 | + feeds will not be blocked by the time-hogging feed, and will also make | |
| 661 | + sure that when the interrupted update is resumed, FeedWordPress will | |
| 662 | + skip ahead to resume processing items at the point at which it was | |
| 663 | + interrupted last time, so that posts further down in the feed will | |
| 664 | + eventually get processed, and not get blocked by the amount of time it | |
| 665 | + takes to process the items higher up in the feed. | |
| 666 | + | |
| 667 | +* `guid` INDEX CREATION BUTTON: FeedWordPress frequently issues queries on | |
| 668 | + the `guid` column of the WordPress posts database (since it uses post | |
| 669 | + guid URIs to keep track of which posts it has syndicated). In very large | |
| 670 | + FeedWordPress installations, you can often significantly improve | |
| 671 | + performance by creating a database index on the `guid` column, but | |
| 672 | + normally you would need to poke around with MySQL or a tool like | |
| 673 | + phpMyAdmin to do this. FeedWordPress can now save you the trouble: to | |
| 674 | + create an index on the `guid` column, just go to | |
| 675 | + **Syndication --> Options**, and mash the button at the bottom of the | |
| 676 | + "Back End" section. | |
| 677 | + | |
| 678 | += 2008.1101 = | |
| 679 | + | |
| 680 | +* INTERFACE BUG THAT PREVENTED ADDING NEW SITES FIXED: The UI reforms in | |
| 681 | + FWP 2008.1030 unintentionally introduced a bug that prevents clean | |
| 682 | + installations of FeedWordPress from providing an input box for adding | |
| 683 | + new feeds to the list of syndicated feeds. This bug has been fixed. | |
| 684 | + | |
| 685 | += 2008.1030 = | |
| 686 | + | |
| 687 | +* WORDPRESS 2.6 COMPATIBILITY: FeedWordPress should now be compatible with | |
| 688 | + WordPress 2.6, and should work more or less seamlessly with the new post | |
| 689 | + revision system. A bug which caused multiple new revisions to be created | |
| 690 | + for posts on certain feeds, regardless of whether or not the item had | |
| 691 | + been updated, has been fixed. | |
| 692 | + | |
| 693 | +* INTERFACE IMPROVEMENTS: The user interface has been substantially | |
| 694 | + restyled to fit in better with the visual style of WordPress 2.5 and | |
| 695 | + 2.6. | |
| 696 | + | |
| 697 | +* YOUTUBE BUG FIXED: POSTS SYNDICATED THROUGH AN AUTOMATIC UPDATE ARE NO | |
| 698 | + LONGER STRIPPED OF `<OBJECT>` TAGS AND CERTAIN OTHER HTML ELEMENTS: Due | |
| 699 | + to the way that some versions of WordPress process posts that are | |
| 700 | + inserted into the database when no user is logged in, many users | |
| 701 | + experienced an issue where YouTube videos and other content using the | |
| 702 | + HTML `<object>` tag would be stripped out of posts that were syndicated | |
| 703 | + during an automatic update. (Posts that were syndicated through manual | |
| 704 | + updates from within the WordPress Dashboard were not affected, because | |
| 705 | + the issue does not arise when an update is executed under a logged-in | |
| 706 | + administrator's credentials.) This bug has now been fixed; YouTube | |
| 707 | + videos and other content using `<object>` tags should now appear | |
| 708 | + properly in syndicated posts, regardless of the way in which the post | |
| 709 | + was syndicated. | |
| 710 | + | |
| 711 | +* AJAX BUGS FIXED: Bugs which blocked the normal operation of WordPress | |
| 712 | + 2.5's AJAX interface elements when FeedWordPress was activated have been | |
| 713 | + fixed. | |
| 714 | + | |
| 715 | +* TAG SUPPORT: A couple of features have been introduced to take advantage | |
| 716 | + of the tagging features in WordPress 2.3.x, 2.5.x, and 2.6.x. Now, when | |
| 717 | + unfamiliar categories are encountered for posts on a feed, you can | |
| 718 | + choose for FeedWordPress (1) to drop the category; (2) to drop the | |
| 719 | + category and to filter out any post that does not match at least one | |
| 720 | + familiar category; (3) to create a new category with that name, or, | |
| 721 | + now, you can also have FeedWordPress (4) create a new *tag* with that | |
| 722 | + name. This option can be set site-wide under Syndication --> Options, | |
| 723 | + or it can be set on a feed-by-feed basis in a feed's Edit screen. | |
| 724 | + | |
| 725 | + In addition, you can now set particular tags to apply to all incoming | |
| 726 | + syndicated posts, under Syndication --> Options, or you can set tags | |
| 727 | + to apply to all incoming syndicated posts from a particular feed in that | |
| 728 | + feed's Edit screen. | |
| 729 | + | |
| 730 | +* FORMATTING FILTERS: There is a new option available under Syndication -> | |
| 731 | + Options which allows users to choose whether or not to expose syndicated | |
| 732 | + posts to being altered by formatting filters. By default, FeedWordPress | |
| 733 | + has always protected syndicated posts (which are already in display-ready | |
| 734 | + HTML when they are syndicated) from being reformatted by formatting | |
| 735 | + filters. However, this approach means that certain plugins which depend | |
| 736 | + on formatting filters (for example, to add "Share This" bars or relevant | |
| 737 | + links to the end of a post) are blocked from working on any syndicated | |
| 738 | + posts. If you want to use one of these plugins together with | |
| 739 | + FeedWordPress, you can now do so by changing the "Formatting Filters" | |
| 740 | + setting from "Protect" to "Expose." | |
| 741 | + | |
| 742 | +* `<atom:source>` ELEMENTS NOW INCLUDED IN ATOM FEED: Atom 1.0 provides | |
| 743 | + a standard method for aggregators to indicate information about the original source of | |
| 744 | + a syndicated post, using the `<atom:source>` element. FeedWordPress now | |
| 745 | + introduces standard `<atom:source>` elements including the title, homepage, and | |
| 746 | + feed URI of the source from which a syndicated post was syndicated. Cf. | |
| 747 | + <http://www.atomenabled.org/developers/syndication/atom-format-spec.php#element.source> | |
| 748 | + | |
| 749 | +* MODULARIZATION OF CODE: The code for different elements of FeedWordPress | |
| 750 | + has been broken out into several modules for easier inspection, | |
| 751 | + documentation, and maintenance of the code. | |
| 752 | + | |
| 753 | +* VERSIONING SCHEME CHANGED: FeedWordPress's feature set has proven stable | |
| 754 | + enough that it can now be removed from beta status; a good thing, since | |
| 755 | + I was very quickly running out of version numbers to use. New releases | |
| 756 | + of FeedWordPress will have version numbers based on the date of their | |
| 757 | + release. | |
| 758 | + | |
| 759 | += 0.993 = | |
| 760 | + | |
| 761 | +* WORDPRESS 2.5.1 COMPATIBILITY: FeedWordPress should now be compatible | |
| 762 | + with WordPress 2.5.1. | |
| 763 | + | |
| 764 | +* WORDPRESS 2.5 INTERFACE IMPROVEMENTS: FeedWordPress's Dashboard | |
| 765 | + interface has undergone several cosmetic changes that should help it | |
| 766 | + integrate better with the WordPress Dashboard interface in WordPress | |
| 767 | + version 2.5.x. | |
| 768 | + | |
| 769 | +* SYNDICATED POSTS CAN BE MARKED AS "PENDING REVIEW": WordPress 2.3 users | |
| 770 | + can now take advantage of WordPress's new "Pending Review" features for | |
| 771 | + incoming syndicated posts. Posts marked as "Pending Review" are not | |
| 772 | + published immediately, but are marked as ready to be reviewed by an | |
| 773 | + Administrator or Editor, who can then choose to publish the post or | |
| 774 | + hold it back. If you want to review syndicated posts from a particular | |
| 775 | + feed, or from all feeds, before they are posted, then use | |
| 776 | + Syndication --> Syndicated Sites --> Edit or Syndication --> Options to | |
| 777 | + change the settings for handling new posts. | |
| 778 | + | |
| 779 | +* AWARE OF NEW URI FOR del.icio.us FEEDS: Previous releases of | |
| 780 | + FeedWordPress already automatically split del.icio.us tags up | |
| 781 | + appropriately appropriately when generating categories. (del.icio.us | |
| 782 | + feeds smoosh all the tags into a single `<dc:subject>` element, | |
| 783 | + separated by spaces; FeedWordPress un-smooshes them into multiple | |
| 784 | + categories by separating them at whitespace.) Unfortunately, del.icio.us | |
| 785 | + recently broke the existing behavior by changing host names for their | |
| 786 | + feeds from del.icio.us to feeds.delicious.com. Version 0.993 accounts | |
| 787 | + for the new host name and un-breaks the tag splitting. | |
| 788 | + | |
| 789 | += 0.992 = | |
| 790 | + | |
| 791 | +* AUTHOR RE-MAPPING: FeedWordPress now offers considerable control over | |
| 792 | + how author names on a feed are translated into usernames within the | |
| 793 | + WordPress database. When a post by an unrecognized author comes in, | |
| 794 | + Administrators can now specify any username as the default username to | |
| 795 | + assign the post to by setting the option in Syndication --> Options | |
| 796 | + (formerly FeedWordPress only allowed you to assign such posts to user | |
| 797 | + #1, the site administrator). Administrators can also create re-mapping | |
| 798 | + rules for particular feeds (under Syndication --> Syndicated Sites --> | |
| 799 | + Edit), so that (for example) any posts attributed to "Administrator" | |
| 800 | + on the feed <http://praxeology.net/blog/feed/> will be assigned to | |
| 801 | + a user named "Roderick T. Long," rather than a user named | |
| 802 | + "Administrator." These settings also allow administrators to filter out | |
| 803 | + posts by particular users, and to control what will happen when | |
| 804 | + FeedWordPress encounters a post by an unrecognized user on that | |
| 805 | + particular feed. | |
| 806 | + | |
| 807 | +* BUG RELATED TO URIS CONTAINING AMPERSAND CHARACTERS FIXED: A bug in | |
| 808 | + WordPress 2.x's handling of URIs in Blogroll links created problems for | |
| 809 | + updating any feeds whose URIs included an ampersand character, such as | |
| 810 | + Google News RSS feeds and other feeds that have multiple parameters | |
| 811 | + passed through HTTP GET. If you experienced this bug, the most likely | |
| 812 | + effect was that FeedWordPress simply would not import new posts from a | |
| 813 | + feed when instructred to do so, returning a "0 new posts" response. In | |
| 814 | + other cases, it might lead to unpredictable results from feed updates, | |
| 815 | + such as importing posts which were not contained in the feed being | |
| 816 | + syndicated, but which did appear elsewhere on the same website. This bug | |
| 817 | + has, hopefully, been resolved, by correcting for the bug in WordPress. | |
| 818 | + | |
| 819 | += 0.991 = | |
| 820 | + | |
| 821 | +* WORDPRESS MU COMPATIBILITY: FeedWordPress should now be compatible with | |
| 822 | + recent releases of WordPress MU. Once FeedWordPress is made available | |
| 823 | + as a plugin, each individual blog can choose to activate FeedWordPress | |
| 824 | + and syndicate content from its own set of contributors. | |
| 825 | + | |
| 826 | +* DISPLAY OF MAGPIE WARNINGS: A number of MagpieRSS warnings or error | |
| 827 | + messages that were displayed when performing an automatic update are | |
| 828 | + no longer displayed, unless debugging parameters have been explicitly | |
| 829 | + enabled. | |
| 830 | + | |
| 831 | +* BUG RELATED TO INTERNATIONAL CHARACTERS IN AUTHOR NAMES FIXED: Due to a | |
| 832 | + subtle incompatability between the way that FeedWordPress generated new | |
| 833 | + user information, and the way that WordPress 2.0 and later added new | |
| 834 | + authors to the database, FeedWordPress might end up creating duplicate | |
| 835 | + authors, or throwing a critical error message, when it encountered | |
| 836 | + authors whose names included international characters. This | |
| 837 | + incompatability has now been fixed; hopefully, authors with | |
| 838 | + international characters in their names should now be handled properly. | |
| 839 | + | |
| 840 | +* `<media:content>` BUG IN MAGPIERSS FIXED: A bug in MagpieRSS's handling | |
| 841 | + of namespaced elements has been fixed. Among other things, this bug | |
| 842 | + caused items containing a Yahoo MediaRSS `<media:content>` element (such | |
| 843 | + as many of the feeds produced by wordpress.com) to be represented | |
| 844 | + incorrectly, with only a capital "A" where the content of the post | |
| 845 | + should have been. Feeds containing `<media:content>` elements should now | |
| 846 | + be syndicated correctly. | |
| 847 | + | |
| 848 | +* update_feedwordpress PARAMETER: You can now use an HTTP GET parameter | |
| 849 | + (`update_feedwordpress=1`) to request that FeedWordPress poll its feeds | |
| 850 | + for updates. When used together with a crontab or other means of | |
| 851 | + scheduling tasks, this means that you can keep your blog automatically | |
| 852 | + updated on a regular schedule, even if you do not choose to use the | |
| 853 | + cron-less automatic updates option. | |
| 854 | + | |
| 855 | +* Some minor interface-related bugs were also fixed. | |
| 856 | + | |
| 857 | + | |
| 858 | += 0.99 = | |
| 859 | + | |
| 860 | +Version 0.99 adds several significant new features, fixes some bugs, and | |
| 861 | +provides compatability with WordPress 2.2.x and 2.3.x. | |
| 862 | + | |
| 863 | +* WORDPRESS 2.2 AND 2.3 COMPATIBILITY: FeedWordPress should now be | |
| 864 | + compatible with WordPress version 2.2 and the upcoming WordPress | |
| 865 | + version 2.3. In particular, it has been tested extensively against | |
| 866 | + WordPress 2.2.3 and WordPress 2.3 Release Candidate 1. | |
| 867 | + | |
| 868 | +* AUTOMATIC UPDATES WITHOUT CRON: FeedWordPress now allows you to | |
| 869 | + automatically schedule checks for new posts without using external task | |
| 870 | + scheduling tools such as cron. In order to enable automatic updates, go | |
| 871 | + to **Syndication --> Options** and set "Check for new posts" to | |
| 872 | + "automatically." For details, see "Automatic Feed Updates" in | |
| 873 | + README.text. | |
| 874 | + | |
| 875 | + An important side-effect of the changes to the update system is that if | |
| 876 | + you were previously using the cron job and the `update-feeds.php` script | |
| 877 | + to schedule updates, you need to change your cron set-up. The old | |
| 878 | + `update-feeds.php` script no longer exists. Instead, if you wish to use | |
| 879 | + a cron job to guarantee updates on a particular schedule, you should | |
| 880 | + have the cron job fetch the front page of your blog (for example, by | |
| 881 | + using `curl http://www.zyx.com/blog/ > /dev/null`) instead of activating | |
| 882 | + the `update-feeds.php` script. If automatic updates have been enabled, | |
| 883 | + fetching the front page will automatically trigger the update process. | |
| 884 | + | |
| 885 | +* INTERFACE REORGANIZATION: All FeedWordPress functions are now located | |
| 886 | + under a top-level "Syndication" menu in the WordPress Dashboard. To | |
| 887 | + manage the list of syndicated sites, manually check for new posts on | |
| 888 | + one or more feeds, or syndicate a new site, you should use the main page | |
| 889 | + under **Syndication**. To change global settings for FeedWordPress, | |
| 890 | + you should use **Syndication --> Options**. | |
| 891 | + | |
| 892 | +* FILE STRUCTURE REORGANIZATION: Due to a combination of changing styles | |
| 893 | + for FeedWordPress plugins and lingering bugs in the FeedWordPress admin | |
| 894 | + menu code, the code for FeedWordPress is now contained in two different | |
| 895 | + PHP files, which should be installed together in a subdirectory of your | |
| 896 | + plugins directory named `feedwordpress`. (See README.text for | |
| 897 | + installation and upgrade instructions relating to the change.) | |
| 898 | + | |
| 899 | +* MULTIPLE CATEGORIES SETTING: Some feeds use non-standard methods to | |
| 900 | + indicate multiple categories within a single category element. (The most | |
| 901 | + popular site to do this is del.icio.us, which separates tags with a | |
| 902 | + space.) FeedWordPress now allows you to set an optional setting, for any | |
| 903 | + feed which does this, indicating the character or characters used to | |
| 904 | + divide multiple categories, using a Perl-compatible regular expression. | |
| 905 | + (In the case of del.icio.us feeds, FeedWordPress will automatically use | |
| 906 | + \s for the pattern without your having to do any further configuration.) | |
| 907 | + To turn this setting on, simply use the "Edit" link for the feed that | |
| 908 | + you want to turn it on for. | |
| 909 | + | |
| 910 | +* REGULAR EXPRESSION BUG FIXED: Eliminated a minor bug in the regular | |
| 911 | + expressions for e-mail addresses (used in parsing RSS `author` | |
| 912 | + elements), which could produce unsightly error messages for some users | |
| 913 | + parsing RSS 2.0 feeds. | |
| 914 | + | |
| 915 | +* DATE / UPDATE BUG FIXED: A bug in date handling was eliminated that may | |
| 916 | + have caused problems if any of (1) WordPress, or (2) PHP, or (3) your | |
| 917 | + web server, or (4) your MySQL server, has been set to use a different | |
| 918 | + time zone from the one that any of the others is set to use. If | |
| 919 | + FeedWordPress has not been properly updating updated posts, or has been | |
| 920 | + updating posts when there shouldn't be any changes for the update, this | |
| 921 | + release may solve that problem. | |
| 922 | + | |
| 923 | +* GOOGLE READER BUGS FIXED: A couple of bugs that made it difficult for | |
| 924 | + FeedWordPress to interact with Google Reader public feeds have been | |
| 925 | + fixed. Firstly, if you encountered an error message reading "There was a | |
| 926 | + problem adding the newsfeed. [SQL: ]" when you tried to add the feed, | |
| 927 | + the cause of this error has been fixed. Secondly, if you succeeded in | |
| 928 | + getting FeedWordPress to check a Google Reader feed, only to find that | |
| 929 | + the title of posts had junk squashed on to the end of them, that bug | |
| 930 | + has been fixed too. To fix this bug, you must install the newest version | |
| 931 | + of the optional MagpieRSS upgrade. | |
| 932 | + | |
| 933 | +* FILTER PARAMETERS: Due to an old, old bug in WordPress 1.5.0 (which was | |
| 934 | + what was available back when I first wrote the filter interface), | |
| 935 | + FeedWordPress has traditionally only passed one parameter to | |
| 936 | + syndicated_item and syndicated_post filters functions -- an array | |
| 937 | + containing either the Magpie representation of a syndicated item from | |
| 938 | + the feed, or the database representation of a post about to be inserted | |
| 939 | + into the WordPress database. If you needed information about the feed | |
| 940 | + that the item came from, this was accessible only through a pair of | |
| 941 | + global variables, $fwp_channel and $fwp_feedmeta. | |
| 942 | + | |
| 943 | + Since it's been a pretty long time since WordPress 1.5.0 was in | |
| 944 | + widespread usage, I have gone ahead and added an optional second | |
| 945 | + parameter to the invocation of the syndicated_item and syndicated_post | |
| 946 | + filters. If you have written a filter for FeedWordPress that uses either | |
| 947 | + of these hooks, you can now register that filter to accept 2 parameters. | |
| 948 | + If you do so, the second parameter will be a SyndicatedPost object, | |
| 949 | + which, among other things, allows you to access information about the | |
| 950 | + feed from which an item is syndicated using the $post->feed and the | |
| 951 | + $post->feedmeta elements (where $post is the name of the second | |
| 952 | + parameter). | |
| 953 | + | |
| 954 | + NOTE THAT THE OLD GLOBAL VARIABLES ARE STILL AVAILABLE, for the time | |
| 955 | + being at least, so existing filters will not break with the upgrade. | |
| 956 | + They should be considered deprecated, however, and may be eliminated in | |
| 957 | + the future. | |
| 958 | + | |
| 959 | +* FILTER CHANGE / BUGFIX: the array that is passed as the first argument | |
| 960 | + syndicated_post filters no longer is no longer backslash-escaped for | |
| 961 | + MySQL when filters are called. This was originally a bug, or an | |
| 962 | + oversight; the contents of the array should only be escaped for the | |
| 963 | + database *after* they have gone through all filters. IF YOU HAVE WRITTEN | |
| 964 | + ANY syndicated_post FILTERS THAT PRESUME THE OLD BEHAVIOR OF PASSING IN | |
| 965 | + STRINGS THAT ARE ALREADY BACKSLASH-ESCAPED, UPDATE YOUR FILTERS | |
| 966 | + ACCORDINGLY. | |
| 967 | + | |
| 968 | +* OTHER MINOR BUGFIXES AND INTERNAL CHANGES: The internal architecture of | |
| 969 | + FeedWordPress has been significantly changed to make the code more | |
| 970 | + modular and clean; hopefully this should help reduce the number of | |
| 971 | + compatibility updates that are needed, and make them easier and quicker | |
| 972 | + when they are needed. | |
| 973 | + | |
| 974 | += 0.981 = | |
| 975 | + | |
| 976 | +Version 0.981 is a narrowly targeted bugfix and compatibility release, whose | |
| 977 | +main purpose is to resolve a major outstanding problem: the incompatibility | |
| 978 | +between version 0.98 of WordPress and the recently released WordPress 2.1. | |
| 979 | + | |
| 980 | +* WORDPRESS 2.1 COMPATIBILITY: FeedWordPress is now compatible with | |
| 981 | + WordPress 2.1, as well as retaining its existing support for WordPress | |
| 982 | + 2.0 and 1.5. Incompatibilities that resulted in database warnings, fatal | |
| 983 | + errors, and which prevented FeedWordPress from syndicating new posts, | |
| 984 | + have been eliminated. | |
| 985 | + | |
| 986 | +* RSS-FUNCTIONS.PHP RENAMED TO RSS.PHP: if you use the upgraded MagpieRSS | |
| 987 | + replacement that's included with FeedWordPress, be sure to note that | |
| 988 | + there are now *two* files to upload from the `OPTIONAL/wp-includes` | |
| 989 | + subdirectory in order to carry out the upgrade: rss-functions.php and | |
| 990 | + rss.php. **It is necessary to upload both files**, due to a change in | |
| 991 | + the file naming scheme in WordPress 2.1, and it is necessary to do so | |
| 992 | + whether you are using WordPress 2.1 or not. If you only upload the | |
| 993 | + `rss-functions.php` file as in previous installations you will not have | |
| 994 | + a working copy of MagpieRSS; the rss.php file contains the actual code. | |
| 995 | + | |
| 996 | +* DATE BUG AFFECTING SOME PHP INSTALLATIONS RESOLVED: due to a subtle bug | |
| 997 | + in parse_w3cdtf(), some installations of PHP encountered problems with | |
| 998 | + FeedWordPress's attempt to date posts, which would cause some new posts | |
| 999 | + on Atom feeds to be dated as if they had apppeared in 1969 or 1970 | |
| 1000 | + (thus, effectively, never appearing on front page at all). This bug in | |
| 1001 | + the date handling should now be fixed. | |
| 1002 | + | |
| 1003 | +* PHP <?=...?> SHORT FORM ELIMINATED: some installations of PHP do not | |
| 1004 | + allow the <?=...?> short form for printing PHP values, which was used | |
| 1005 | + extensively in the FeedWordPress interface code. Since this could cause | |
| 1006 | + fatal errors for users with the wrong installation of PHP, the short | |
| 1007 | + form has been replaced with full PHP echo statements, and is no longer | |
| 1008 | + used in FeedWordPress. | |
| 1009 | + | |
| 1010 | +* BETTER USER INTERFACE INTEGRATION WITH WORDPRESS 2.x: Some minor changes | |
| 1011 | + have been made to help the FeedWordPress interface pages blend in better | |
| 1012 | + with the user interface when running under WordPress 2.x. | |
| 1013 | + | |
| 1014 | +* GLOBAL CATEGORIES BUG RESOLVED: a bug that prevented some users from | |
| 1015 | + setting one or more categories to apply to syndicated posts from all | |
| 1016 | + feeds (using the checkbox interface under Options --> Syndication) has | |
| 1017 | + been resolved. | |
| 1018 | + | |
| 1019 | += 0.98 = | |
| 1020 | + | |
| 1021 | +* WORDPRESS 2.0 COMPATIBILITY: This is a narrowly-targeted release to | |
| 1022 | + solve a major outstanding problem. FeedWordPress is now compatible with | |
| 1023 | + both WordPress 1.5 and WordPress 2.0. Incompatibilities that caused | |
| 1024 | + fatal SQL errors, and a more subtle bug with off-kilter counts of posts | |
| 1025 | + under a given category, have been resolved. FeedWordPress tests for | |
| 1026 | + database schema using the global $wp_db_version variable (if null, then | |
| 1027 | + we presume that we're dealing with WordPress 1.5). | |
| 1028 | + | |
| 1029 | + NOTE: I have **not** fully tested FeedWordPress with WordPress 2.0. | |
| 1030 | + Further testing may reveal more bugs. However, you should now be able | |
| 1031 | + to get at least basic FeedWordPress functionality up and running. | |
| 1032 | + | |
| 1033 | +* AUTHOR MATCHING: FeedWordPress tests several fields to see if it can | |
| 1034 | + identify the author of the post as a user already in the WordPress user | |
| 1035 | + database. In previous versions, it tested the user login, the nickname, | |
| 1036 | + and tested for "aliases" listed in the Profile (see documentation). FWP | |
| 1037 | + now also matches authors on the basis of e-mail address (*if* an e-mail | |
| 1038 | + address is present). This is particularly helpful for formats such as | |
| 1039 | + RSS 2.0, in which authors are primarily identified by e-mail addresses. | |
| 1040 | + | |
| 1041 | += 0.97 = | |
| 1042 | + | |
| 1043 | +* INSTALLATION PROCEDURE: Some of the changes between 0.96 and 0.97 | |
| 1044 | + require upgrades to the meta-data stored by FeedWordPress to work | |
| 1045 | + properly. Thus, if you are upgrading from 0.96 or earlier to 0.97, most | |
| 1046 | + FeedWordPress operations (including updates and template functions) | |
| 1047 | + WILL BE DISABLED until you run the upgrade procedure. Fortunately, | |
| 1048 | + running the upgrade procedure is easy: just go to either Options --> | |
| 1049 | + Syndication or Links --> Syndicated in the WordPress Dashboard and press | |
| 1050 | + the button. | |
| 1051 | + | |
| 1052 | +* FEED FORMAT SUPPORT: Support has been added for the Atom 1.0 IETF | |
| 1053 | + standard. Several other elements are also newly supported | |
| 1054 | + (dcterms:created, dcterms:issued, dcterms:modified, dc:identifier, | |
| 1055 | + proper support for the RSS 2.0 guid element, the RSS 2.0 author element, | |
| 1056 | + the use of Atom author or Dublin Core dc:creator constructs at the feed | |
| 1057 | + level to identify the author of individual items, etc.) | |
| 1058 | + | |
| 1059 | + N.B.: full support of several Atom 1.0 features, such as categories | |
| 1060 | + and enclosures, requires you to install the optional rss-functions.php | |
| 1061 | + upgrade in your wp-includes directory. | |
| 1062 | + | |
| 1063 | +* BUG FIX: Running `update-feeds.php` from command line or crontab | |
| 1064 | + returned "I don't syndicate..." errors. It turns out that WordPress | |
| 1065 | + sometimes tramples on the internal PHP superglobals that I depended on | |
| 1066 | + to determine whether or not the script was being invoked from the | |
| 1067 | + command line. This has been fixed (the variables are now checked | |
| 1068 | + *before* WordPress can trample them). Note that `update-feeds.php` has | |
| 1069 | + been thoroughly overhauled anyway; see below for details. | |
| 1070 | + | |
| 1071 | +* BUG FIX: Duplicate categories or author names. Fixed two bugs that could | |
| 1072 | + create duplicate author and/or category names when the name contained | |
| 1073 | + either (a) certain international characters (causing a mismatch between | |
| 1074 | + MySQL and PHP's handling of lowercasing text), or (b) characters that | |
| 1075 | + have a special meaning in regular expressions (causing MySQL errors when | |
| 1076 | + looking for the author or category due to regexp syntax errors). These | |
| 1077 | + should now be fixed thanks to careful escaping of names that go into | |
| 1078 | + regular expressions and careful matching of lowercasing functions | |
| 1079 | + (comparing results from PHP only to other results from PHP, and results | |
| 1080 | + from MySQL only to other results from MySQL). | |
| 1081 | + | |
| 1082 | +* BUG FIX: Items dated December 31, 1969 should appear less often. The | |
| 1083 | + function for parsing W3C date-time format dates that ships with | |
| 1084 | + MagpieRSS can only correctly parse fully-specified dates with a | |
| 1085 | + fully-specified time, but valid W3C date-time format dates may omit the | |
| 1086 | + time, the day of the month, or even the month. Some feeds in the wild | |
| 1087 | + date their items with coarse-grained dates, so the optional | |
| 1088 | + `rss-functions.php` upgrade now includes a more flexible parse_w3cdtf() | |
| 1089 | + function that will work with both coarse-grained and fully-specified | |
| 1090 | + dates. (If parts of the date or the time are omitted, they are filled in | |
| 1091 | + with values based on the current time, so '2005-09-10' will be dated to | |
| 1092 | + the current time on that day; '2004' will be dated to this day and time | |
| 1093 | + one year ago. | |
| 1094 | + | |
| 1095 | + N.B.: This fix is only available in the optional `rss-functions.php` | |
| 1096 | + upgrade. | |
| 1097 | + | |
| 1098 | +* BUG FIX: Evil use of HTTP GET has been undone. The WordPress interface | |
| 1099 | + is riddled with inappropriate (non-idempotent) uses of HTTP GET queries | |
| 1100 | + (ordinary links that make the server do something with significant | |
| 1101 | + side-effects, such as deleting a post or a link from the database). | |
| 1102 | + FeedWordPress did some of this too, especially in places where it aped | |
| 1103 | + the WordPress interface (e.g. the "Delete" links in Links --> | |
| 1104 | + Syndicated). That's bad business, though. I've changed the interface so | |
| 1105 | + that all the examples of improper side-effects that I can find now | |
| 1106 | + require an HTTP POST to take effect. I think I got pretty much | |
| 1107 | + everything; if there's anything that I missed, let me know. | |
| 1108 | + | |
| 1109 | + Further reading: [Sam Ruby 2005-05-06: This Stuff Matters](http://www.intertwingly.net/blog/2005/05/06/This-Stuff-Matters) | |
| 1110 | + | |
| 1111 | +* BUG FIX: Categories applied by `cats` setting should no longer prevent | |
| 1112 | + category-based filtering from working. In FeedWordPress, you can (1) | |
| 1113 | + apply certain categories to all syndicated posts, or all posts from | |
| 1114 | + a particular feed; and (2) filter out all posts that don't match one | |
| 1115 | + of the categories that are already in the WordPress database (allowing | |
| 1116 | + for simple category-based filtering; just load up WordPress with the | |
| 1117 | + categories you want to accept, and then tell FeedWordPress not to create | |
| 1118 | + new ones). However, the way that (1) and (2) were implemented meant that | |
| 1119 | + you couldn't effectively use them together; once you applied a known | |
| 1120 | + category to all syndicated posts from a particular feed, it meant that | |
| 1121 | + they'd have at least one familiar category (the category or categories | |
| 1122 | + you were applying), and that would get all posts past the filter no | |
| 1123 | + matter what categories they were originally from. | |
| 1124 | + | |
| 1125 | + Well, no longer. You can still apply categories to all syndicated posts | |
| 1126 | + (using either Syndication --> Options, or the feed-level settings under | |
| 1127 | + Links --> Syndicated). But these categories are not applied to the post | |
| 1128 | + until *after* it has already passed by the "familiar categories" filter. | |
| 1129 | + So now, if you want, you can do category filtering and *then* apply as | |
| 1130 | + many categories as you please to all and only posts that pass the filter. | |
| 1131 | + | |
| 1132 | +* BUG FIX: Other minor typos and HTML gaffes were fixed along the way. | |
| 1133 | + | |
| 1134 | +* PERFORMANCE: get_feed_meta() no longer hits the database for information | |
| 1135 | + on every call; it now caches link data in memory, so FeedWordPress only | |
| 1136 | + goes to the database once for each syndicated link. This may | |
| 1137 | + substantially improve performance if your database server resources | |
| 1138 | + are tight and your templates make a lot of use of custom settings from | |
| 1139 | + get_feed_meta(). | |
| 1140 | + | |
| 1141 | +* API CHANGE: Link ID numbers, rather than RSS URIs, are now used to | |
| 1142 | + identify the feed from which a post is syndicated when you use template | |
| 1143 | + functions such as get_feed_meta(). The practical upshot of this is you | |
| 1144 | + can switch feeds, or change the feed address for a particular syndicated | |
| 1145 | + site, without breaking your templates for all the posts that were | |
| 1146 | + syndicated from the earlier URI. | |
| 1147 | + | |
| 1148 | +* API CHANGE: if you have plugins or templates that make use of the | |
| 1149 | + get_feed_meta() function or the $fwp_feedmeta global, note that the | |
| 1150 | + data formerly located under the `uri` and `name` fields is now located | |
| 1151 | + under the `link/uri` field and the `link/name` field, respectively. Note | |
| 1152 | + also that you can access the link ID number for any given feed under the | |
| 1153 | + global $fwp_feedmeta['link/id'] (in plugins) or | |
| 1154 | + get_feed_meta('link/id') (in a template in post contexts). | |
| 1155 | + | |
| 1156 | +* FEATURE: the settings for individual feeds can now be edited using a | |
| 1157 | + humane interface (where formerly you had to tweak key-value pairs in the | |
| 1158 | + Link Notes section). To edit settings for a feed, pick the feed that you | |
| 1159 | + want under Links --> Syndicated and click the Edit link. | |
| 1160 | + | |
| 1161 | +* FEATURE: The "Unsubscribe" button (formerly "Delete") in Links --> | |
| 1162 | + Syndicated now offers three options for unsubscribing from a feed: (1) | |
| 1163 | + turning off the subscription without deleting the feed data or affecting | |
| 1164 | + posts that were syndicated from the feed (this works by setting the Link | |
| 1165 | + for the feed as "invisible"); (2) deleting the feed data and all of the | |
| 1166 | + posts that were syndicated from the feed; or (3) deleting the feed data | |
| 1167 | + and *keeping* the posts that were syndicated from the feed | |
| 1168 | + setting the Link to "Invisible" (meaning that it will not be displayed | |
| 1169 | + in lists of the site links on the front page, and it won't be checked | |
| 1170 | + for updates; (2) deleting the Link and all of the posts that were | |
| 1171 | + syndicated from its feed; or (3) deleting the feed data but keeping the | |
| 1172 | + posts that were syndicated (which will henceforward be treated as if | |
| 1173 | + they were local rather than syndicated posts). (Note that (1) is usually | |
| 1174 | + the best option for aggregator sites, unless you want to clean up the | |
| 1175 | + results of an error or a test.) | |
| 1176 | + | |
| 1177 | +* FEATURE / BUG FIX: If you have been receiving mysterious "I don't | |
| 1178 | + syndicate...", or "(local) HTTP status code was not 200", or "(local) | |
| 1179 | + transport error - could not open socket", or "parse error - not well | |
| 1180 | + formed" errors, then this update may solve your problems, and if it does | |
| 1181 | + *not* solve them, it will at least make the reasons for the problems | |
| 1182 | + easier to understand. That's because I've overhauled the way that | |
| 1183 | + FeedWordPress goes about updating feeds. | |
| 1184 | + | |
| 1185 | + If you use the command-line PHP scripting method to run scheduled | |
| 1186 | + updates, then not much should change for you, except for fewer | |
| 1187 | + mysterious errors. If you have done updates by sending periodic HTTP | |
| 1188 | + requests to <http://your-blog.com/path/wp-content/update-feeds.php>, | |
| 1189 | + then the details have changed somewhat; mostly in such a way as to make | |
| 1190 | + things easier on you. See the README file or online documentation on | |
| 1191 | + Staying Current for the details. | |
| 1192 | + | |
| 1193 | +* FEATURE: FeedWordPress now features a more sophisticated system for | |
| 1194 | + timed updates. Instead of polling *every* subscribed feed for updates | |
| 1195 | + *each* time `update-feeds.php` is run, FeedWordPress now keeps track of | |
| 1196 | + the last time it polled each feed, and only polls them again after a | |
| 1197 | + certain period of time has passed. The amount of time is normally set | |
| 1198 | + randomly for each feed, in a period between 30 minutes and 2 hours (so | |
| 1199 | + 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 | |
| 1200 | + directly by the feed, which brings us to ... | |
| 1201 | + | |
| 1202 | +* FEATURE: FeedWordPress now respects the settings in the `ttl` and | |
| 1203 | + Syndication Module RSS elements. Feeds with these elements set will not | |
| 1204 | + be polled any more frequently than they indicate with these feeds unless | |
| 1205 | + the user manually forces FeedWordPress to poll the feed (see Links --> | |
| 1206 | + Syndicated --> Edit settings). | |
| 1207 | + | |
| 1208 | += 0.96 = | |
| 1209 | + | |
| 1210 | +* FEATURE: support has been added for enclosures in RSS 2.0 and Atom | |
| 1211 | + 0.6+ newsfeeds. WordPress already supports adding enclosures to an | |
| 1212 | + item; FeedWordPress merely gets the information on the enclosure | |
| 1213 | + from the feed it is syndicating and plugs that information directly | |
| 1214 | + into the WordPress database so that (among other things) that post | |
| 1215 | + will have its enclosure listed in your blog's RSS 2 newsfeed. | |
| 1216 | + | |
| 1217 | + Note that enclosure support requires using the optional MagpieRSS | |
| 1218 | + upgrade (i.e., replacing your `wp-includes/rss-functions.php` with | |
| 1219 | + `OPTIONAL/wp-includes/rss-functions.php` from the FWP archive) | |
| 1220 | + | |
| 1221 | +* FEATURE: for completeness's sake, there is now a feed setting, | |
| 1222 | + `hardcode url`, that allows you to set the URI for the front page | |
| 1223 | + of a contributor's website manually (that is, prevent it from being | |
| 1224 | + automatically updated from the feed channel link on each update). To | |
| 1225 | + set the URI manually, put a line like this in the Link Notes section | |
| 1226 | + of a feed: | |
| 1227 | + | |
| 1228 | + hardcode url: yes | |
| 1229 | + | |
| 1230 | + You can also instruct FeedWordPress to use hardcoded URIs by default | |
| 1231 | + on all feeds using Options --> Syndication | |
| 1232 | + | |
| 1233 | +* FEATURE: by default, when FeedWordPress finds new syndicated posts, | |
| 1234 | + it (1) publishes them immediately, (2) turns comments off, and (3) | |
| 1235 | + turns trackback / pingback pings off. You can now alter all three | |
| 1236 | + default behaviors (e.g., to allow pings on syndicated posts, or to | |
| 1237 | + send newly-syndicated posts to the draft pile for moderation) using | |
| 1238 | + Options --> Syndication | |
| 1239 | + | |
| 1240 | + | |
| 1241 | += From 0.91 to 0.95 = | |
| 1242 | + | |
| 1243 | +* BUG FIX: Fixed an obscure bug in the handling of categories: | |
| 1244 | + categories with trailing whitespace could cause categories with | |
| 1245 | + duplicate names to be created. This no longer happens. While I was | |
| 1246 | + at it I tightened up the operation of | |
| 1247 | + FeedWordPress::lookup_categories() a bit in general. | |
| 1248 | + | |
| 1249 | +* FEATURE DEPRECATED: the feed setting `hardcode categories` is now | |
| 1250 | + deprecated in favor of `unknown categories` (see below), which | |
| 1251 | + allows you to strip off any syndication categories not already in | |
| 1252 | + your database using `unknown categories: default` or `unknown | |
| 1253 | + categories: filter`. If you have `hardcode categories: yes` set on a | |
| 1254 | + feed, this will be treated as `unknown categories: default` (i.e., | |
| 1255 | + no new categories will be added, but if a post doesn't match any of | |
| 1256 | + the categories it will be added in the default category--usually | |
| 1257 | + "Uncategorized" or "General"). | |
| 1258 | + | |
| 1259 | +* FEATURE: You can now set global defaults as to whether or not | |
| 1260 | + FeedWordPress will update the Link Name and Link Description | |
| 1261 | + settings for feeds automatically from the feed title and feed | |
| 1262 | + tagline. (By default, it does, as it has in past versions.) Whether | |
| 1263 | + this behavior is turned on or off, you can still override the | |
| 1264 | + default behavior using feed settings of `hardcode name: yes`, | |
| 1265 | + `hardcode name: no`, `hardcode description: yes`, or `hardcode | |
| 1266 | + description: no`. | |
| 1267 | + | |
| 1268 | +* FEATURE: Users can now provide one or several "aliases" for an | |
| 1269 | + author, just as they can for a category. For example, to make | |
| 1270 | + FeedWordPress treat posts by "Joseph Cardinal Ratzinger" and "Pope | |
| 1271 | + Benedict XVI" as by the same author, edit the user profile for Pope | |
| 1272 | + Benedict XVI and add a line like this to the "User profile" field: | |
| 1273 | + | |
| 1274 | + a.k.a.: Joseph Cardinal Ratzinger | |
| 1275 | + | |
| 1276 | + You can add several aliases, each on a line by itself. You can also | |
| 1277 | + add any other text you like to the Profile without interfering with | |
| 1278 | + the aliases. | |
| 1279 | + | |
| 1280 | +* FEATURE: Users can now choose how to handle syndicated posts that | |
| 1281 | + are in unfamiliar categories or by unfamiliar authors (i.e., | |
| 1282 | + categories or authors whose names are not yet in the WordPress | |
| 1283 | + database). By default, FeedWordPress will (as before) create a new | |
| 1284 | + category (or new author) and use it for the current post and any | |
| 1285 | + future posts. This behavior can be changed, either for all feeds or | |
| 1286 | + for one or another particular feed. | |
| 1287 | + | |
| 1288 | + There are now three different options for an unfamiliar author: (1) | |
| 1289 | + FeedWordPress can create a new author account and attribute the | |
| 1290 | + syndicated post to the new account; (2) FeedWordPress can attribute | |
| 1291 | + the post to an author if the author's name is familiar, and to a | |
| 1292 | + default author (currently, this means the Site Administrator | |
| 1293 | + account) if it is not; (3) FeedWordPress can drop posts by | |
| 1294 | + unfamiliar authors and syndicate only posts by authors who are | |
| 1295 | + already in the database. | |
| 1296 | + | |
| 1297 | + There are, similarly, two different options for an unfamiliar | |
| 1298 | + category: (1) FeedWordPress can create new categories and place the | |
| 1299 | + syndicated post in them; (2) FeedWordPress can drop the unfamiliar | |
| 1300 | + categories and place syndicated posts only in categories that it is | |
| 1301 | + already familiar with. In addition, FeedWordPress 0.95 lets you | |
| 1302 | + choose whether posts that are in *no* familiar categories should be | |
| 1303 | + syndicated (and placed in the default category for the blog) or | |
| 1304 | + simply dropped. | |
| 1305 | + | |
| 1306 | + You can set the default behavior for both authors and categories | |
| 1307 | + using the settings in Options --> Syndication. You can also set | |
| 1308 | + different behavior for specific feeds by adding the `unfamiliar | |
| 1309 | + author` and / or `unfamiliar categories` settings to the Link Notes | |
| 1310 | + section of a feed: | |
| 1311 | + | |
| 1312 | + unfamiliar author: (create|default|filter) | |
| 1313 | + unfamiliar categories: (create|default|filter) | |
| 1314 | + | |
| 1315 | + A setting of `unfamiliar author: create` will make FeedWordPress | |
| 1316 | + create new authors to match unfamiliar author names *for this feed | |
| 1317 | + alone*. A setting of `unfamiliar author: default` will make it | |
| 1318 | + assign posts from unfamiliar authors to the default user account. A | |
| 1319 | + setting of `unfamiliar author: filter` will cause all posts (from | |
| 1320 | + this feed alone) to be dropped unless they are by an author already | |
| 1321 | + listed in the database. Similiarly, `unfamiliar categories: create` | |
| 1322 | + will make FeedWordPress create new categories to match unfamiliar | |
| 1323 | + category names *for this feed alone*; `unfamiliar categories: | |
| 1324 | + default` will cause it to drop any unfamiliar category names; and | |
| 1325 | + `unfamiliar categories: filter` will cause it to *both* drop any | |
| 1326 | + unfamiliar category names *and* to only syndicate posts that are | |
| 1327 | + placed in one or more familiar categories. | |
| 1328 | + | |
| 1329 | + These two new features allow users to do some coarse-grained | |
| 1330 | + filtering without having to write a PHP filter. Specifically, they | |
| 1331 | + offer an easy way for you to filter feeds by category or by author. | |
| 1332 | + Suppose, for example, that you only wanted to syndicate posts that | |
| 1333 | + your contributors place in the "Llamas" category. You could do so by | |
| 1334 | + setting up your installation of WordPress so that the only category | |
| 1335 | + in the database is "Llamas," and then use Options --> Syndication to | |
| 1336 | + set "Unfamiliar categories" to "don't create new categories and | |
| 1337 | + don't syndicate posts unless they match at least one familiar | |
| 1338 | + category". Now, when you update, only posts in the "Llamas" category | |
| 1339 | + will be syndicated by FeedWordPress. | |
| 1340 | + | |
| 1341 | + Similarly, if you wanted to filter one particular feed so that only | |
| 1342 | + posts by (for example) the author "Earl J. Llama" were syndicated to | |
| 1343 | + your site, you could do so by creating a user account for Earl J. | |
| 1344 | + Llama, then adding the following line to the settings for the feed | |
| 1345 | + in Link Notes: | |
| 1346 | + | |
| 1347 | + unfamiliar author: filter | |
| 1348 | + | |
| 1349 | + This will cause any posts from this feed that are not authored by | |
| 1350 | + Earl J. Llama to be discarded, and only the posts by Earl J. Llama | |
| 1351 | + will be syndicated. (If the setting is used on one specific feed, it | |
| 1352 | + will not affect how posts from other feeds are syndicated.) | |
| 1353 | + | |
| 130 | 1354 | == License == |
| 131 | 1355 | |
| 132 | -The FeedWordPress plugin is copyright © 2005-2007 by Charles Johnson. It uses | |
| 1356 | +The FeedWordPress plugin is copyright © 2005-2010 by Charles Johnson. It uses | |
| 133 | 1357 | code derived or translated from: |
| 134 | 1358 | |
| 135 | 1359 | - [wp-rss-aggregate.php][] by [Kellan Elliot-McCrea](kellan@protest.net) |
| 136 | 1360 | - [MagpieRSS][] by [Kellan Elliot-McCrea](kellan@protest.net) |
| @@ -151,7 +1375,6 @@ | ||
| 151 | 1375 | [wp-rss-aggregate.php]: http://laughingmeme.org/archives/002203.html |
| 152 | 1376 | [MagpieRSS]: http://magpierss.sourceforge.net/ |
| 153 | 1377 | [HTTP Navigator 2]: http://www.keyvan.net/2004/11/16/http-navigator/ |
| 154 | 1378 | [Ultra-Liberal Feed Finder]: http://diveintomark.org/projects/feed_finder/ |
| 155 | - | |
| 156 | 1379 | [GNU General Public License]: http://www.gnu.org/copyleft/gpl.html |
| 157 | 1380 | |