PluginProbe
FeedWordPress / 2014.0805
FeedWordPress v2014.0805
trunk 0.8 0.9 0.91 0.95 0.96 0.97 0.98 0.981 0.99 0.991 0.992 0.993 2008.1030 2008.1101 2008.1105 2008.1214 2009.0612 2009.0613 2009.0618 2009.0707 2009.1111 2009.1112 2010.0127 2010.0528 All 65 releases
feedwordpress / readme.txt

readme.txt in FeedWordPress 2014.0805, at readme.txt

2,026 lines 110.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 === FeedWordPress ===
2 Contributors: Charles Johnson
3 Donate link: http://feedwordpress.radgeek.com/
4 Tags: syndication, aggregation, feed, atom, rss
5 Requires at least: 3.0
6 Tested up to: 3.9.1
7 Stable tag: 2014.0805
8
9 FeedWordPress syndicates content from feeds you choose into your WordPress weblog.
10
11 == Description ==
12
13 * Author: [Charles Johnson](http://radgeek.com/contact)
14 * Project URI: <http://feedwordpress.radgeek.com/>
15 * License: GPL 2. See License below for copyright jots and tittles.
16
17 FeedWordPress is an Atom/RSS aggregator for WordPress. It syndicates content
18 from feeds that you choose into your WordPress weblog; the content it syndicates
19 appears as a series of special posts in your WordPress posts database. If you
20 syndicate several feeds then you can use WordPress's posts database and
21 templating engine as the back-end of an aggregation ("planet") website. It was
22 developed, originally, because I needed a more flexible replacement for
23 [Planet][] to use at [Feminist Blogs][].
24
25 [Planet]: http://www.planetplanet.org/
26 [Feminist Blogs]: http://feministblogs.org/
27
28 FeedWordPress is designed with flexibility, ease of use, and ease of
29 configuration in mind. You'll need a working installation of WordPress or
30 WordPress MU (version [3.0] or later), and also FTP or SFTP access to your web
31 host. The ability to create cron jobs on your web host is helpful but not
32 required. You *don't* need to tweak any plain-text configuration files and you
33 *don't* need shell access to your web host to make it work. (Although, I should
34 point out, web hosts that *don't* offer shell access are *bad web hosts*.)
35
36 [WordPress]: http://wordpress.org/
37 [WordPress MU]: http://mu.wordpress.org/
38 [3.0]: http://codex.wordpress.org/Version_3.0
39
40 == Installation ==
41
42 To use FeedWordPress, you will need:
43
44 * an installed and configured copy of [WordPress][] or [WordPress MU][]
45 (version 3.0 or later).
46
47 * FTP, SFTP or shell access to your web host
48
49 = New Installations =
50
51 1. Download the FeedWordPress installation package and extract the files on
52 your computer.
53
54 2. Create a new directory named `feedwordpress` in the `wp-content/plugins`
55 directory of your WordPress installation. Use an FTP or SFTP client to
56 upload the contents of your FeedWordPress archive to the new directory
57 that you just created on your web host.
58
59 3. Log in to the WordPress Dashboard and activate the FeedWordPress plugin.
60
61 4. Once the plugin is activated, a new **Syndication** section should
62 appear in your WordPress admin menu. Click here to add new syndicated
63 feeds, set up configuration options, and determine how FeedWordPress
64 will check for updates. For help, see the [FeedWordPress Quick Start][]
65 page.
66
67 [FeedWordPress Quick Start]: http://feedwordpress.radgeek.com/wiki/quick-start
68
69 = Upgrades =
70
71 To *upgrade* an existing installation of FeedWordPress to the most recent
72 release:
73
74 1. Download the FeedWordPress installation package and extract the files on
75 your computer.
76
77 2. Upload the new PHP files to `wp-content/plugins/feedwordpress`,
78 overwriting any existing FeedWordPress files that are there.
79
80 3. Log in to your WordPress administrative interface immediately in order
81 to see whether there are any further tasks that you need to perform
82 to complete the upgrade.
83
84 4. Enjoy your newer and hotter installation of FeedWordPress
85
86 == Using and Customizing FeedWordPress ==
87
88 FeedWordPress has many options which can be accessed through the WordPress
89 Dashboard, and a lot of functionality accessible programmatically through
90 WordPress templates or plugins. For further documentation of the ins and
91 outs, see the documentation at the [FeedWordPress project homepage][].
92
93 [FeedWordPress project homepage]: http://feedwordpress.radgeek.com/
94
95 == Changelog ==
96
97 = 2014.0805 =
98
99
100 * FILTERS AND ADD-ONS: A number of new hooks for filters and add-ons to
101 further customize the behavior of FWP have been added.
102
103 * COMPATIBILITY/BUGFIX: Many users saw odd characters, especially "n,"
104 appearing in posts in versions of WordPress from 3.6 on, due to a change
105 in when the API expects HTML data for posts to be slashed and when it
106 does not. This has been fixed, so that the junk characters should no
107 longer appear, regardless of your version of WordPress.
108
109 * BUGFIX: A bug preventing FWP from saving categories assigned under
110 Syndication > Categories & Tags has been fixed.
111
112 * BUGFIX: Post-editing related metaboxes should now show up when you edit
113 items of any post type, including custom types, not only normal WordPress
114 posts.
115
116 * BUGFIX: A bug in the admin UI that caused the "Alternative Feeds" /
117 "Find Feeds" box to throw a permissions error has been fixed.
118
119 * BUGFIX: A bug preventing proper mapping of categories and other terms in
120 2013.0504 has been fixed.
121
122 * BUGFIX: A number of small fixes contributed through Github by Flynsarmy
123 should eliminate PHP warnings for many users on several methods that are
124 called as static methods within FeedWordPress.
125
126 = 2013.0504 =
127
128 * BUGFIX: PHP 5.4 compatibility -- includes some more extensive fixes to
129 compatibility issues with PHP 5.4's handling of global variables
130
131 * DIAGNOSTICS: New diagnostics settings added to help track behavior of
132 terms (categories, post tags, etc.) for syndicated posts.
133
134 = 2012.0504 =
135
136 * MODULE REORGANIZATION: Should ensure that all needed submodules will be
137 properly included regardless of whether you are installing from github,
138 from SVN, or from the WordPress plugins page. If you've been getting
139 fatal errors about required modules not being found, this release should
140 hopefully resolve the issue.
141
142 = 2012.0503 =
143
144 * BUGFIX: Works properly again with WordPress installations that use a
145 MySQL table name prefix other than the default `wp_` prefix.
146
147 * BUGFIX: Includes a couple of significant PHP 5.4 compatibility fixes.
148 Now that PHP 5.4 is more widely deployed, Diagnostics will now also
149 show PHP version and some other potentially useful troubleshooting
150 information.
151
152 * ADMIN UI: Better indicates your options when deleting a syndicated post
153 so as to let you know whether it will be Trashed (and thus not
154 resyndicated) or Erased (and thus potentially resyndicated)
155
156 * ADMIN UI: Adds an AJAXy Test Expression button to allow live testing of
157 sample results from expressions in Custom Post Settings.
158
159 = 2012.1218 =
160
161 * WORDPRESS VISUAL EDITOR FIXED. There was an unlisted change in the
162 2012.1212 release which had the effect of disabling the WordPress Visual
163 Editor for all posts syndicated by FeedWordPress. Many users reported
164 this as a bug. It was actually a deliberate decision -- a crappy way to
165 try to deal with a crappy situation. (Many users had previously reported
166 a "bug" in which all the paragraph or line breaks seemed to be stripped
167 out of their syndicated posts; the issue turned out to be that the
168 Visual Editor was stripping out `<p>` and `<br/>` tags on the assumption
169 that the resulting post would be sent through standard WordPress
170 formatting filters. But under default settings, posts syndicated by FWP
171 deliberately bypass WordPress formatting filters.) In any case, this
172 version adopts a more flexible compromise. *If* FeedWordPress is set up
173 to bypass WordPress formatting filters (as it is by default), *then*
174 the Visual Editor will be disabled for syndicated posts (since using it
175 would produce incorrect results). If on the other hand FeedWordPress is
176 set up to expose syndicated posts to WordPress formatting filters (as it
177 usually is for those using the Visual Editor to manually edit posts),
178 then the Visual Editor tab will be re-enabled for syndicated posts.
179
180 * BUG FIX: PERMALINKS REWRITTEN FOR CUSTOM POST TYPES AS WELL AS NORMAL
181 WORDPRESS POSTS. If you had WordPress set up to syndicate incoming posts
182 to a custom post type (under Syndication > Posts & Links), and asked
183 FeedWordPress to make "permalinks point to the original site", then
184 previous versions of FeedWordPress would fail to do the rewriting --
185 permalinks would only be rewritten to point to the original source for
186 normal WordPress posts, not for custom post types. In 2012.1218 this bug
187 has been fixed: all post types will now have permalinks rewritten unless
188 you request for permalinks to point to the local copy on your aggregator
189 site.
190
191 * BUG FIX: ELIMINATES "PHP Fatal error: Call to a member function
192 setting() on a non-object...." Some changes to the in-memory caching of
193 information about feed subscriptions could result in a fatal PHP error
194 in cases where you have de-activated one of your subscriptions, but
195 posts from that subscription were still in the archive. This would
196 normally show up through half-completed feeds or half-completed pages
197 that suddenly broke off in the middle, and displayed or logged an error
198 message like: "PHP Fatal error: Call to a member function setting() on a
199 non-object in {...}/wp-content/plugins/feedwordpress/feedwordpress.php
200 on line 615". This bug has been eliminated, so affected feeds and pages
201 should now render correctly, and the error message should no longer
202 appear.
203
204 * BUG FIX: CATEGORY BOXES IN SYNDICATION > CATEGORIES & TAGS. Some minor
205 bugs in the appearance and animation of category checkboxes (for
206 example, the checkbox used to select categories for syndicated posts on
207 the Syndication > Categories & Tags settings page) have been fixed.
208
209 = 2012.1212 =
210
211 * WORDPRESS 3.5 COMPATIBILITY: This release has been tested for compatibility
212 with new releases of WordPress, up to version 3.5, and any documented
213 compatibility issues have been cleared -- in particular, if you were seeing
214 error pages stating that you don't have permission to access the
215 FeedWordPress Syndication page within the WordPress admin interface, then
216 upgrading to this release should fix the problem.
217
218 As always, if you encounter any compatibility problems after upgrading your
219 version of WordPress and your version of FeedWordPress to the most recent
220 versions, please contact me with as detailed a description as possible of
221 the issue you are encountering, the circumstances you're encountering it
222 under, what you expect to see happening, and what is happening instead.
223
224 * PHP 5.4 COMPATIBILITY: This release has been audited to fix potential
225 problems with deprecation notices or fatal errors under recent versions
226 of PHP. In particular, all uses of run-time pass-by-reference have been
227 eliminated from the code; if you were seeing a fatal error reading
228 "Call-time pass-by-reference has been removed ..." then upgrading to
229 this release should fix the problem.
230
231 * CUSTOMIZATION FRAMEWORK: A great deal of work has been done to make the
232 underlying framework more flexible, so that PHP add-ons can be written
233 to adapt FeedWordPress to handle custom XML vocabularies, expiration of
234 posts under specified conditions, and other custom behavior.
235
236 * BUGFIX: MANUALLY EDITED POST SLUGS NOT OVERWRITTEN. Thanks to a report
237 by Chris Fritz, I've identified some code that causes post slugs for the
238 posts generated by FWP to be rewritten with every update, even if the
239 user has manually updated the slug from within the WordPress editing
240 interface. This has been fixed: FWP will continue to generate new slugs
241 for syndicated posts, but when syndicated posts are updated, they will
242 retain the slug that they had at the time of the update; any manual
243 changes to the post slug should be preserved.
244
245 * USER-AGENT STRING: FeedWordPress now sends a distinctive User-Agent
246 string identifying itself, and noting that it is a feed aggregator.
247
248 * MISCELLANEOUS PERFORMANCE IMPROVEMENTS: A number of changes have been
249 made to try to reduce the intensity and expense in terms of both
250 database performance and web server memory consumption.
251
252 * DIAGNOSTICS IMPROVEMENTS: A number of new and improved diagnostics have
253 been added which should aid in understanding and troubleshooting issues
254 that may arise.
255
256 = 2011.1019 =
257
258 * BUGFIX: "THERE ARE NO HTTP TRANSPORTS AVAILABLE" ERROR FIXED: The initial
259 support for HTTP Basic and Digest authentication in version 2011.1018
260 contained a bug that could cause HTTP requests for feeds or for other
261 WordPress resources to break down if you do not have the PHP curl module
262 installed. This bug has been fixed, and these errors should no longer
263 appear.
264
265 * IMPROVED HTTP AUTHENTICATION SUPPORT: In addition, the HTTP Authentication
266 support in FeedWordPress has been extended, to ensure that Basic
267 authentication is available in many web host configurations, and to allow
268 you to add a username and password for a feed immediately when you
269 subscribe to it.
270
271 = 2011.1018 =
272
273 * HTTP BASIC AND DIGEST AUTHENTICATION SUPPORT: FeedWordPress now offers
274 improved support for syndicating feeds that make use of HTTP Basic or HTTP
275 Digest authentication methods. In order to set up authentication on one of
276 your feeds, just go to its Settings > Feed page, and click on the "Uses
277 Username/Password" link underneath the Feed URL. Enter the username and
278 password for accessing the feed, then select the authentication method. (If
279 you're not sure which method your feed provider uses, try Basic first.)
280 Save Changes, and syndicate away.
281
282 NOTE: HTTP Digest support requires the curl module for PHP. If you are not
283 sure whether this module has been installed, contact your web hosting
284 provider to check.
285
286 * WP 3.3 (BETA) COMPATIBILITY: This version fixes an init-sequence bug that
287 could cause intrusive warning messages or fatal errors in WP 3.3 beta
288 versions.
289
290 * BUGFIX: FIXES LONG DELAYS IN UPDATES SCHEDULES IN LARGE INSTALLATIONS. A
291 performance feature introduced in version 2011.0721 had some flaws in its
292 implementation, which tended to create serious delays (on the order of
293 several hours) in FeedWordPress's attempts to schedule updates for feeds,
294 when users had a very large number of feeds (several dozen or more) in their
295 FeedWordPress installation. This feature has been reconfigured to adjust
296 dynamically to the number of feeds in Syndicated Sources and the frequency
297 with which they are updated. If you've seen a lot of ready-to-update feeds
298 piling up, several hours after they were supposed to get updated, then this
299 upgrade should better ensure that your feeds get updated in a timely fashion.
300
301 * BUGFIX: syndicated_item_guid FILTERS FIXED. Previous versions of
302 FeedWordPress theoretically allowed for filters on the syndicated_item_guid
303 hook, which was intended to filter the globally-unique identifier element
304 (rss:guid or atom:id) -- useful if you need to convince FeedWordPress to use
305 different guids, or to recognize two or more incoming posts as versions of
306 the same post rather than as distinct items. However, while the hook
307 affected the guid stored in the WordPress database, it did not affect the
308 guid used to check whether an incoming feed item had already been syndicated
309 or was a new item -- which greatly limited the practical usefulness of the
310 filter. This bug has been fixed: syndicated_item_guid filters should now
311 properly control not only the final database record, but also the initial
312 uniqueness test applied to posts.
313
314 = 2011.0721 =
315
316 * BUGFIX: SERIOUS BUG CAUSING RARE UNEXPECTED DELETION OF PAGES AND OTHER
317 CONTENT. A bug in the guid-checking code for some rare kinds of guids could
318 cause content in the wp_posts table to seemingly disappear at random after
319 FeedWordPress updates.This most frequently but not exclusively affected
320 static pages. What actually happened is that in these rare cases the
321 existing static page was mistaken for an older version of the new incoming
322 syndicated post, which was then stored as a new revision of the original
323 page. The bug that caused these mistaken identities has been fixed.
324
325 * BUGFIX: UNWANTED AUTOMATIC PAGE-LOAD-BASED UPDATES NO LONGER A NUISANCE.
326 Some users encountered a bug in which FeedWordPress would adopt an automatic
327 page-load-based update method, even if they had requested that it not do
328 so, and that it use a manual or cron job update method instead. The bug
329 causing this has been fixed, and page-load-based updates should no longer
330 trigger unless explicitly turned on.
331
332 * WP 3.2 USER INTERFACE COMPATIBILITY: POST TAGS BOX NOW WORKS AGAIN. The
333 release of WordPress 3.2 caused a breakage in the tags box which prevented
334 you from adding or removing tags under Syndication --> Categories & Tags.
335 (The breakage was the result of an incompatibility introduced by the new
336 release of jQuery.) This breakage has now been fixed, and the tags box
337 should work correctly again.
338
339 * FEED UPDATE SCHEDULING IMPROVEMENTS: UI. The Syndicated Sources table now
340 provides considerably more data to understand update scheduling, when
341 specific scheduling decisions are made because of, e.g., requests from the
342 feed producer.
343
344 * FEED UPDATE SCHEDULING IMPROVEMENTS: ENFORCEABLE "MINIMUM INTERVAL" SETTING
345 TO SPACE OUT UPDATES. Some feeds request specific update schedules, using
346 standard elements such as sy:updateFrequency and rss:ttl. Normally,
347 FeedWordPress respects any scheduling requests that a feed makes -- if it
348 requests a longer gap between polls than what FWP would normally adopt, then
349 FWP slows down to meet the request. If it indicates a shorter gap than what
350 FWP would normally adopt, FWP speeds up and checks that feed for updates
351 more often than it normally would. Now, there should not be any way for user
352 settings to override an explicit slow-down request from the feed producer --
353 if producers indicate a particular update schedule, then polling the feed
354 more frequently than they request is considered abusive behavior. But
355 there's no reason why users should not be able -- if they so desire -- to
356 override speed-up requests, and poll a feed *less* frequently than the
357 indicated update schedule, if the FWP user wants to space update checkins
358 over a longer interval of time. Before, they could not do this: FWP always
359 sped up to meet the indicated update schedule. Now, they can do this, by
360 using the new "Minimum Interval" setting in Syndication --> Feeds &
361 Updates..
362
363 = 2011.0706 =
364
365 * WP 3.2 COMPATIBILITY: ELIMINATES FATAL ERROR "Call to undefined method
366 WP_SimplePie_File::WP_SimplePie_File() in
367 [...]/wp-content/plugins/feedwordpress/feedwordpress.php on line 1841." The
368 latest release of WordPress, version 3.2, has shifted the minimum
369 requirements up to PHP 5.2, and in line with the shift to PHP5 they have
370 rewritten a number of code segments that made use of now-obsolete PHP4
371 idioms. Unfortunately, this caused a fatal error whenever FeedWordPress
372 attempted to make use of the cache, since FWP's caching plugin was written
373 to match the older idiom. FeedWordPress has been updated to follow the new,
374 PHP5 idiom when possible, thus eliminating the fatal error.
375
376 * PERFORMANCE: The handling of queries to determine whether posts had been
377 previously syndicated produced some very slow queries (usually, but not
378 always, involving a scan over the MD5(post_guid) column of the table). The
379 code that prepares MySQL queries for previously-syndicated checks has been
380 revised to eliminate the MD5(post_guid) scan entirely, and to significantly
381 improve performance by eliminating other unnecessary clauses.
382
383 * BUGFIX: NO LONGER DESTROYS STICKY POSTS. Previous versions could destroy
384 (or, more precisely, replace the content of) sticky posts due to some
385 queries mashed together in unexpected ways by WordPress. Version 2011.0706
386 accounts for and eliminates the problem; your sticky posts should be safe
387 once again.
388
389 * BUGFIX: GUIDS CONTAINING MYSQL-ESCAPED CHARACTERS NO LONGER CAUSE DUPLICATE
390 POSTS TO APPEAR. One remaining source of duplicate post issues in 2011.0602
391 was guids that contained characters that needed to be escaped for MySQL,
392 such as single quotes and double quotes. The work-around for handling
393 filtered URIs has now been corrected to ensure that these do not cause
394 duplicate posts.
395
396 = 2011.0602 =
397
398 * WP 3.1.3 COMPAT / BUGFIX: WHITESPACE IN GUIDS NO LONGER PRODUCES DUPLICATE
399 POSTS. The work-around for handling filtered URIs in guid elements has now
400 been extended to handle URIs that were filtered because of leading or
401 trailing whitespace, in addition to URIs that were filtered because of
402 unapproved schemes.
403
404 * WP 3.1.3 COMPAT / BUGFIX: RELATIVE URLS IN GUIDS NO LONGER PRODUCE DUPLICATE
405 POSTS. The work-around for handling filtered URIs in guid elements has now
406 been extended to handle URIs that were altered without being filtered out
407 entirely (most commonly because a scheme was added to a relative URL).
408
409 * BUGFIX: UPDATES TO POST NO LONGER CAUSE DUPLICATE DRAFT VERSION TO APPEAR.
410 Under certain conditions in 2011.0531, an update to an existing post would
411 not be properly applied to the post itself, but rather would appear as a
412 duplicate post with Draft status. This bug has been eliminated, and updates
413 will now be properly inserted as revisions to the existing post.
414
415 = 2011.0531 =
416
417 * WORDPRESS 3.1.3 COMPATIBILITY: DUPLICATE POSTS ISSUE FIXED. Due to
418 internal changes in the way that WordPress handles post guids in the
419 most recent release (3.1.3), many users experienced problems with many
420 duplicate posts appearing in rapid succession. (Specifically, this would
421 happen with any posts using tag: URL guids -- such as all the posts
422 coming from Blogger feeds or feeds from other Google services.) This
423 compatibility release of FeedWordPress eliminates the issue by working
424 around the new restrictions on tag: URLs.
425
426 * NEW AND IMPROVED DIAGNOSTICS: Syndication --> Diagnostics now contains some
427 new diagnostics settings useful for debugging problems with duplicate posts
428 (allowing you to easily view the guid of posts in the WordPress posts
429 database and allowing you to track the SQL used to check for existing
430 versions of a syndicated post).
431
432 = 2011.0512 =
433
434 * DIAGNOSTICS IMPROVEMENTS; "THERE MAY BE A BUG IN FEEDWORDPRESS" CRITICAL
435 ERROR NOTICES ELIMINATED: This version includes some major improvements
436 to the Syndication --> Diagnostics section, which should aid in
437 troubleshooting difficulties with items failing to be imported, posts
438 failing to be properly inserted into the database, or updates failing to
439 be recorded. If you have been encountering critical error / bug notices
440 with a white screen and the message "THERE MAY BE A BUG IN
441 FEEDWORDPRESS," followed by an extraordinarily long dump of mostly
442 incomprehensible diagnostic information, you'll be happy to know that
443 the condition causing these notices has been eliminated. In the few
444 cases where errors may still crop up with database insertions,
445 FeedWordPress will now produce a significantly more manageable and more
446 useful diagnostic message.
447
448 * BUGFIX: NEW POSTS FAILING TO APPEAR IN A CLEANLY-INSTALLED FEEDWORDPRESS
449 SYSTEM. If you encountered a recurring problem with FeedWordPress
450 failing to import new posts, after a clean install of FeedWordPress
451 (i.e., not an upgrade from a previous version), this problem may have
452 been the result of a bug with author-handling which has now been fixed
453 in the 2011.0512 release. (If the problem does *not* go away with the
454 upgrade, this version also includes significant improvements to the
455 Diagnostics system, which will help track down what *is* causing it
456 in your particular case.)
457
458 * PERFORMANCE: New handling of update hashes allows FeedWordPress to avoid
459 a certain kind of infinite loop, caused when two more more different
460 syndicated feeds each carried a version of the same item (for example,
461 because it appeared on two different aggregator feeds that you're
462 syndicating). In previous versions, when this kind of loop cropped up,
463 syndicated posts could pile up an indefinitely large number of revisions
464 -- each revision alternating between the version from each of the two
465 feeds where it appeared -- which would, over time, dramatically inflate
466 the size of the database, and kill the performance of queries on the
467 post table. This issue has been resolved: revisions of the post that
468 have been syndicated once will not be re-syndicated over and over again.
469
470 * AUTHOR LISTS: Lists of authors presented on the Author settings pages
471 should now be easier to scan through, with author names arranged in
472 alphabetical order.
473
474 * FEED ITEM DATE PARSING: More tweaks to make date-time handling more
475 resilient when feeds provide broken or weird values for the timestamps
476 on syndicated items. FWP will now attempt to work around unparseable
477 timezone values.
478
479 * AUTHOR MATCHING: Now attempts to match author names against the WP login
480 name in addition to display_name; when creating user record, also fills
481 in some best-guess values for nickname, firstname and lastname. Also
482 properly picks up Atom 1.0 author/uri data from feed.
483
484 * COMPATIBILITY: FeedWordPress has been successfully tested for
485 compatibility with recent releases of WordPress, up to version 3.1.2.
486
487 = 2011.0211 =
488
489 * BUGFIX: DUPLICATE POSTS WHEN GUIDS ARE TOO LONG: When feeds included
490 exceptionally long GUIDs, FeedWordPress could occasionally get into
491 a situation where posts with the long GUIDs would be duplicated over
492 and over again with each update (because FWP failed to store the full
493 GUID, due to length constraints in the relevant database tables).
494 Without the full GUID, FWP would not know that the post had already
495 been syndicated once. This bug has been fixed, and should no longer
496 produce duplicate posts.
497
498 * HTTP TIMEOUT SETTING: If you are frequently running into timeout
499 problems with one or more of the feeds you syndicate, FWP now allows you
500 to adjust the timeout for HTTP requests using a global or feed-by-feed
501 setting.
502
503 * HTTP GET PARAMETERS: You can now temporarily or permanently add HTTP
504 GET parameters to a subscription using an interface in Syndication -->
505 Feeds & Updates. This is especially helpful for making quick, short-term
506 changes to a subscription (for example, to pull in all the previous
507 items from a web service, before settling down to pulling in only newly
508 updated items).
509
510 * DIAGNOSTICS SYSTEM: Added several new diagnostics which are useful in
511 troubleshooting, and established a framework for add-on modules to hook
512 in with their own diagnostic messages.
513
514 * UI: Adjusted some internal coding, which should allow for settings
515 pages and add-ons to properly display multiple category pickers on a
516 single settings page.
517
518 * PHP4 COMPATIBILITY TWEAKS: This version makes some tweaks to the handling
519 of object references which should improve compatibility with older
520 versions of PHP. (Although, I should note, web hosts that still force
521 you to run under PHP 4 -- in 2011! -- are *bad web hosts*.)
522
523 * IMPROVED PERFORMANCE: This version eliminates a *major* performance drag
524 that shows up on sites with large numbers of users (due to some poor
525 decisions about where to place a user query, which caused the user table
526 to be scanned frequently when it did not need to be). If you experienced
527 serious problems with CPU load or slow database performance under
528 2010.0905, which kicked in immediately when FWP was loaded and tended
529 to disappear immediately if FWP was de-activated, it is likely that
530 upgrading away from 2010.0905 to the most recent version will resolve
531 your problem.
532
533
534 = 2010.0905 =
535
536 * BUGFIX: CATEGORIES AND TAGS CORRECTLY ASSIGNED IN AUTOMATIC UPDATES.
537 Version 2010.0903 switched over to a new way of assigning categories and
538 tags as part of its support for handling custom taxonomies.
539 Unfortunately, the method that it uses is subjected to some checks of
540 the current user's capabilities, which creates problems for posts that
541 are being inserted into the WordPress database when there *is* no
542 current user logged in (as, for example, when an update is being carried
543 out from a cron job or automatic update). The result was that posts
544 from cron jobs and automatic updates ended up with no Categories and no
545 Tags being assigned. This bug has now been fixed: in 2010.0905, Tags and
546 Categories should be correctly assigned to all posts, regardless of
547 whether they were added from manual updates, cron jobs, or automatic
548 updates.
549
550 = 2010.0903 =
551
552 * WORDPRESS 3 REQUIRED: Please note that this release of FeedWordPress
553 *requires* WordPress 3.0 or later. If you are currently using a 2.x
554 branch of WordPress, you will need to upgrade to WordPress 3 before you
555 can successfully upgrade FeedWordPress.
556
557 * BUGFIX: NO MORE DISAPPEARING "SYNDICATED SOURCES" PANEL; INTERNET
558 EXPLORER UI GLITCH APPARENTLY FIXED: Several users independently
559 reported a problem with FWP 2010.0623 and various versions of IE. A
560 problem with the HTML markup caused IE (but not Firefox or
561 Chrome) to completely hide the Syndicated Sources administration panel
562 (the main list of currently-syndicated sources, and the main location
563 for adding new sources, under the Syndication menu item) when a user
564 added their first syndicated feed. Maddeningly, the glitch seemed to
565 affect some IE users and not others: I was never able to reproduce the
566 problem for myself on my own machines. However, the markup of Syndicated
567 Sources has undergone significant changes and corrections since
568 2010.0623, and two independent sources who had been having this problem
569 confirm that they no longer encounter it with the updated version. For
570 the time being, I am going to declare this bug squashed.
571
572 * BUGFIX: MORE PROTECTION AGAINST FATAL ERRORS FROM PLUGGABLE VERSIONS OF
573 SimplePie: FeedWordPress now takes some precautions that should help to
574 better avoid conflicts for users who have installed pluggable versions
575 of SimplePie for another plugin or theme. (You may not know that you have
576 done this; but if you've been encountering fatal errors indicating that
577 you cannot redeclare class SimplePie, or something along those lines,
578 there is now a better chance that those fatal errors will be eliminated.
579
580 * PERFORMANCE: SIGNIFICANTLY REDUCED MEMORY CONSUMPTION FOR LARGE UPDATES:
581 FeedWordPress is still a memory-hungry little module, especially when
582 you are dealing with very large feeds. However, users should notice a
583 significant reduction in memory overloads, especially if they update a
584 large number of feeds at once.
585
586 * USER INTERFACE IMPROVEMENTS: Nothing is radically different, but there's
587 been a fair amount of extra spit and polish added, including a convenient
588 new Dashboard widget that may save you a trip to the Syndication menu,
589 a lot of effort to make the relationship between global and feed-by-feed
590 settings more obvious to the user and more easily controllable, to make
591 navigation between settings pages easier, to sand off a few rough edges,
592 and to make other improvements on the margins. I hope you'll like how
593 it looks.
594
595 * ADDING MULTIPLE FEEDS: FeedWordPress now provides a convenient mode for
596 adding multiple feeds at once, using either a copy-and-pasted list, or
597 else an OPML file. Go to Syndication --> Syndicated Sources and check
598 out the two new buttons underneath the New Source input box. When you
599 have to add a number of feeds at once, this can save you considerable
600 time and trouble.
601
602 * IMPROVED HANDLING OF AUTHORS WITH DUPLICATE E-MAIL ADDRESS AND AUTHORS
603 WITH NAMES WRITTEN IN FOREIGN SCRIPTS: WordPress 3 is increasingly picky
604 about what it will accept for new author accounts, and some of the
605 conditions it imposes can cause error conditions that prevent posts from
606 being properly syndicated, or properly attributed, if authors happen to
607 have identical e-mail addresses, or if users are given usernames that are
608 written in non-Western scripts. FeedWordPress now handles these much
609 better, and systematically works to avoid clashes between syndicated
610 authors' account names or in their e-mail addresses, which should result
611 in significantly better results in mapping author names to WordPress
612 user accounts.
613
614 * MAPPING CATEGORIES ON SYNDICATED POSTS TO TAGS NOW BETTER SUPPORTED:
615 In previous versions, the only way for the Categories provided by a
616 syndicated feed to be mapped into Post Tags was to instruct FWP to
617 create new tags, rather than new categories, for unfamiliar categories
618 from the feed. This works fine if you want tags to be the default; but
619 if you want only a *specific* set of tags, there was no way to get them
620 without getting most or all other categories imported as tags. You can
621 now do this by creating a tag (under Posts ==> Post Tags) before
622 importing the post; when the syndicated category matches a pre-existing
623 tag, the incoming post will be tagged with that tag, without creating
624 a local Post Category.
625
626 * REL-TAG MICROFORMAT SUPPORT FOR INLINE TAGS: Syndicated posts that
627 contain inline tags, marked up using the Rel-Tag microformat
628 <http://microformats.org/wiki/rel-tag>, are now tagged with the tags
629 provided by Rel-Tag format links.
630
631 * MUCH GREATER CONTROL OVER CATEGORY AND TAG MAPPING: This is partly the
632 result of building in support for a potentially endless set of custom
633 taxonomies (see below), but in general there has been a great deal of
634 effort towards giving you more control over how categories and tags
635 provided by the feed are mapped into terms on the local blog. In
636 particular, you can now force FeedWordPress to create only categories
637 from categories and tags provided by the feed; or to create only tags;
638 or to search both categories and tags for a match; or you can simply
639 force it to drop all of the categories provided by the feed and use
640 only categories or tags that you explicitly provide. In addition, you
641 can now also choose whether to override global categories settings with
642 a local, feed-specific setting; or whether to *add together* *both* the
643 global categories and the local feed-specific categories -- depending
644 on whatever your use-case may demand.
645
646 * CUSTOM POST TYPES AND TAXONOMY SUPPORTS: This is mainly for the
647 super-geeky, but if you use other plugins or themes that make
648 significant use of WordPress's support for custom post types and custom
649 taxonomies, you may be pleased to find that FeedWordPress now allows you
650 to feed incoming posts into any custom feed type that you wish, and to
651 map categories and tags from the feed to custom taxonomies as well as
652 to the standard Category and Tag taxonomies.
653
654 * STORING NAMESPACED CUSTOM FEED ELEMENTS IN POST CUSTOM FIELDS: If you
655 would like to use FeedWordPress's support for storing custom meta-data
656 from feed elements in the custom fields for a post (for example, to
657 store geolocation data or iTunes media meta-data), you'll find that it's
658 now much easier for you to access these namespaced elements. You always
659 could access them, but in previous versions you might have to write
660 something ugly like $(/{http://www.w3.org/2003/01/geo/wgs84_pos#}lat)
661 just to get at the value of a `<geo:lat>` tag. Now, as long as you use
662 the same mnemonic codes that the feed producer used, you should always
663 be able to write a nice, simple expression like $(/geo:lat) to get the
664 value of a <geo:lat> tag.
665
666 * CUSTOM DIRECTORY STRUCTURE SUPPORT: if you poke at it enough, WordPress
667 is relatively flexible about where it should store admin interface code,
668 uploaded content, plugins, and a number of other things that occupy an
669 important place in the WordPress directory structure. Previous versions
670 of FeedWordPress encountered serious errors or broke entirely when used
671 with directory structures other than the default. This should now be
672 fixed: FWP now supports custom directory structures wherever WordPress
673 allows them to be customized, rather than depending on the default
674 locations. Enjoy your freedom!
675
676 * MANY NEW FILTERS AND API UTILITY FUNCTIONS FOR ADD-ON PROGRAMMERS: There
677 have been too many improvements to list them all in this ChangeLog, but
678 it means that much more power and ease for folks who are customizing
679 FeedWordPress through PHP filters or add-on modules. Fuller
680 documentation will be put up at the Wiki at feedwordpress.radgeek.org
681 soon.
682
683 = 2010.0623 =
684
685 * WORDPRESS 3.0 COMPATIBILITY / AUTHOR MAPPING INTERFACE ISSUES: I
686 resolved a couple of outstanding issues with the author mapping
687 interface (Syndication --> Authors), which were preventing new users
688 from being created correctly and author mapping rules from being set up
689 correctly. These partly had to do with new restrictions on user account
690 creation introduced in WordPress 3.0; anyway, they should now be fixed.
691
692 * MORE EFFICIENT SYNDICATED URL LOOKUPS: Several users noticed that the
693 bug fix introduced in 2010.0528 for compatibility with post-listing
694 plugins caused a lot more queries to the database in order to look up
695 numerical post IDs from the URL provided to the filter. This shouldn't
696 cause any major problems, but it is not as efficient as it could be; the
697 code now takes advantage of a more efficient way of doing things,
698 which usually will not require any additional database queries.
699
700 * SIMPLEPIE FEED UPDATE ISSUES: If you have been having significant
701 problems with getting feeds to update correctly, this may be the result
702 of some bugs in the implementation of SimplePie caching that ships with
703 WordPress (as of version 3.0). (You would most commonly experience this
704 error if you continually saw errors such as "No feed found at <...>" in
705 your updates.) Fortunately, SimplePie allows for a great deal of
706 extensibility and this allows me to work around the problem; these
707 error conditions should now be mostly eliminated when the underlying
708 feed is valid.
709
710 * UI: SHOW INACTIVE SOURCES: When you use the default unsubscribe option
711 -- which turns off the subscription to a feed while preserving the posts
712 from it and the syndication-related meta-data for the feed -- the
713 unsubscribed feed can now easily be viewed in a special "Inactive"
714 section of the Syndicated Sources page. (As a side benefit, if you've
715 accidentally, or only temporarily, turned off the subscription to a
716 feed, it is now much easier to restore the feed to being active, or to
717 delete it permanently, if you prefer.
718
719 * UI: FEED FINDER / SWITCH FEED INTERFACE IMPROVEMENTS: changes to styling
720 and options for the feed finder / switch feed, which should now make it
721 easier, in some cases, to find alternative feeds, and make interface
722 options more clearly visible.
723
724 * FILTERS: `syndicated_item_published` and `syndicated_item_updated` NOW
725 PROPERLY AFFECT THE DATING OF POSTS. These filters used to affect some
726 date-related settings, but not others -- and, most importantly, not the
727 final date that is set for a post's publication or last-modified date
728 in the WordPress database. Now, they do affect that, as they should.
729 (Filters should receive, and return, a long integer, representing a Unix
730 epoch relative timestamp.)
731
732 * MAGIC URL TO CLEAR THE CACHE: Suppose that you need to clear the feed
733 cache, for whatever reason; suppose, even, that you need to clear it on
734 a regular basis. One way you might do this is by logging into the
735 FeedWordPress administrative interface and going to Syndication -->
736 Performance. Another way you might do it, now, is to simply send an
737 HTTP request to a magic URL provided by FeedWordPress: if your blog is
738 at example.com, the URL would be <http://example.com/?clear_cache=1>
739
740 = 2010.0602 =
741
742 * CATEGORY BOX INTERFACE ELEMENT FIXED FOR WP 3.0: Stylesheet changes
743 between WordPress 2.9.x and the WordPress 3.0 RC caused the Categories
744 box under **Syndication --> Categories & Tags** to malfunction. This
745 has been fixed.
746
747 * LINK CATEGORY SELECTION BOX IN SYNDICATION ==> FEEDS FIXED FOR WP 2.8
748 AND 2.9: A WP 3.0 compatibility change introduced in 2010.0531
749 inadvertently broke the Syndicated Link Category selector under
750 Syndication --> Feeds & Updates in WP 2.8 and WP 2.9, causing the post
751 categories to be displayed in the selector rather than the link
752 categories. This should now be fixed so that the selector will work
753 correctly under both the current versions of WordPress and the 3.0 RC.
754
755 * MORE PERMISSIVE HANDLING OF FEEDS WITH BAD CONTENT-TYPE HEADERS: One of
756 the small advantages that MagpieRSS had over SimplePie is that it was
757 more tolerant about parsing well-formed feeds that the remote web server
758 happened to deliver with weird or incorrect HTTP Content-type headers.
759 In feeds affected by this problem, the new SimplePie parser would simply
760 fail to find a feed, due to its being led astray by the contents of the
761 Content-type header. This version includes an extension to SimplePie's
762 content-type sniffer that offers more permissive handling of the HTTP
763 headers.
764
765 * MORE FULL-TEXT "EXCERPTS" NOW PROPERLY SHORTENED. Version 2010.0528
766 introduced code to control for cases in which elements intended for
767 item summaries are (ill-advisedly) used to carry the full text of posts;
768 past versions of FeedWordPress would simply include the full text of the
769 post in the excerpt field, but newer versions now attempt to detect
770 this condition when it arises and to head it off, by blanking out the
771 excerpt field and filling it with an automatically generated short,
772 plain text excerpt from the full content. This release broadens the
773 test conditions that indicate when an excerpt field is treated as
774 identical to the full text of the post, and should therefore improve
775 the handling of some feeds (such as Google Reader feeds) where the full
776 text of each post was still appearing in the excerpt field.
777
778 * FILTERS: `syndicated_item_published` AND `syndicated_item_updated`
779 FILTERS NOW ALLOW FILTER AUTHORS TO CHANGE POST TIMESTAMPS. You can now
780 use the `syndicated_item_published` and `syndicated_item_updated` filter
781 hooks to write filters or add-ons which directly change the post date
782 and most-recently-updated timestamps on incoming syndicated posts. Props
783 to niska for pointing out where the filters needed to be applied in
784 order to change WordPress's internal timestamps for incoming posts.
785
786 = 2010.0531 =
787
788 * PERMALINK / CUSTOM FIELDS PROBLEM RESOLVED: An issue in 2010.0528 caused
789 some posts to be imported without the proper syndication-related
790 meta-data being attached (thus causing permalinks to point back to the
791 aggregator website rather than to the source website, among other
792 problems). This problem has been resolved (and a fix has been applied
793 which will resolve the problem for any posts affected by this problem,
794 if the original post is recent enough to still be available on the feed).
795
796 * UI: The "Back End" section has been split into two separate sections --
797 "Performance" (dealing with caching, database index, and other
798 performance tweaks), and "Diagnostics" (dealing with debug mode,
799 update logging, and a number of new diagnostic tests which I will be
800 rolling out over the next few releases).
801
802 * Several minor interface bug fixes and PHP warning notices eliminated.
803
804 = 2010.0528 =
805
806 #### Compatibility ####
807
808 * SIMPLEPIE IS NOW USED TO PARSE FEEDS; NO MORE MAGPIERSS UPGRADES NEEDED:
809 One of the biggest changes in this release is that FeedWordPress no
810 longer depends on MagpieRSS to parse feeds, and has switched to the much
811 more up-to-date and flexible SimplePie feed parser, which is included as
812 a standard part of WordPress versions 2.8 and later. Using SimplePie will
813 hopefully allow for better handling of feeds going further, and will
814 allow me greater flexibility in determining how exactly the feed parser
815 will operate. It also means that FeedWordPress no longer requires
816 special upgrades to the WordPress core MagpieRSS files, and should
817 eliminate quite a bit of complexity.
818
819 * MAGPIERSS COMPATIBILITY LAYER FOR EXISTING FILTERS AND ADD-ONS: However,
820 I have also implemented a compatibility layer to ensure that existing
821 filters and add-ons for FeedWordPress which depended on the MagpieRSS
822 data format *should not be broken* by the switch to SimplePie. Going
823 forward, I recommend that new filters and add-ons be written to take
824 advantage of the SimplePie object representations of items, feeds, etc.,
825 rather than the MagpieRSS arrays, but the MagpieRSS arrays will still
826 be available and older filters should continue to work as they have in
827 the past.
828
829 * COMPATIBILITY WITH WORDPRESS 2.9.x and 3.0: This release has been tested
830 for the existing WordPress 2.9.x branch and with the upcoming release of
831 WordPress 3.0. Changes in the user interface JavaScript between WordPress
832 2.8.x and WordPress 2.9 caused the tag box interface element to break in
833 the Syndication --> Categories & Tags settings page; changes in the API
834 functions for adding new authors caused fatal errors under certain
835 conditions in WordPress 3.0. These breakages have been fixed.
836
837 * DROPPED LEGACY SUPPORT FOR WORDPRESS PRIOR TO 2.8: Because SimplePie is
838 not included with versions of WordPress prior to 2.8, I have chosen to
839 drop legacy support for WordPress versions 1.5 through 2.7. If you are
840 using FeedWordPress with a version of WordPress before 2.8, you will
841 have to upgrade your installation of WordPress in order to take
842 advantage of this release.
843
844 * PHP 5.3 COMPATIBILITY: A couple of compatibility issues, which were
845 causing fatal errors amd ugly warnings for users of PHP 5.3,
846 have been eliminated.
847
848 #### Features and Processing ####
849
850 * INTERFACE REORGANIZATION: The interface restructuring, began with
851 Version 2009.0612, has been completed. Catch-all settings pages have
852 been eliminated entirely for pages that cover each aspect of handling
853 a feed: Feeds & Updates, Posts & Links, Authors, Categories & Tags,
854 and Back End handling of the database and diagnostic information.
855 Extensive new interface hooks allow add-on modules to significantly
856 change or extend the FeedWordPress admin interface and workflow.
857
858 * STORING INFORMATION FROM THE FEED IN CUSTOM FIELDS: Many users
859 have written to request the ability to store information from elements
860 in the feed in a custom field on each post. (So that, for example, if
861 post includes a `itunes:duration` element, you could store the contents
862 in a Custom Field called `duration` on the post (for a Theme to access
863 later). The Custom Post Settings under Syndication --> Posts & Links now
864 allow you to access any item or feed tag, using a syntax similar to
865 a much-simplified version of XPath. See Posts & Links settings for
866 details.
867
868 * UPDATE-FREEZING ON MANUALLY EDITED POSTS: FeedWordPress now allows you
869 to mark posts that have been manually edited, so that the changes you
870 make will not be overwritten by later updates from the feed. If you make
871 manual edits to a particular post, just check the "Manual editing"
872 checkbox in order to protect your changes from being overwritten. If you
873 want to block *all* posts from being updated after they are imported
874 for the first time, a new "Updated Posts" setting in Posts & Links
875 allows you to freeze all posts from a particular feed, or all syndicated
876 posts.
877
878 * SETTING: FEED-BY-FEED SETTINGS FOR WHERE PERMALINKS POINT TO: You've
879 always been able to tell FeedWordPress whether permalinks for posts
880 should point to the original source of the story or the local copy. Now
881 you can choose different policies for different feeds, instead of one
882 global policy for all feeds. (Of course, you can still use a global
883 default if you prefer.)
884
885 * SETTING: USER CONTROL OVER TIMING BASIS. You can now determine the
886 schedule on which feeds are considered ready to poll for updates --
887 by default feeds become ready for polling after about 1 hour. You can
888 now increase or decrease the time window under Syndication --> Feeds &
889 Updates. (However, please pay *CAREFUL ATTENTION* to the recommendations
890 and DO NOT set the scheduling lower than 60 minutes unless you are
891 ABSOLUTELY SURE that you have specific permission from webmaster who
892 provides that specific feed to poll more frequently than that. If you
893 set this too low (and about 60 minutes is the polite minimum if you
894 haven't been given a different figure), most webmasters will consider
895 the frequent hits on their server as rude, or even downright abusive.
896
897 * OTHER SETTINGS: New settings also include the ability to stop FWP from
898 resolving relative URLs within syndicated content, and the ability to
899 choose whether FeedWordPress should indicate the comment feed from the
900 original source, or the local comment feed, when providing the comment
901 feed URL for a syndicated post.
902
903 #### Parsing ####
904
905 * BETTER DATE HANDLING -- FEWER FLASHBACKS TO 1969 and 1970: FeedWordPress
906 has made some bugfixes and some improvements in the logic for parsing
907 dates. This should allow FeedWordPress to correctly parse more dates in
908 more feeds; and, in the last resort, when FeedWordPress fails to
909 correctly parse a date, to fall back to a more intelligent default. This
910 should hopefully avoid most or all error conditions that have resulted
911 in articles being erroneously dated to the dawn of the Unix epoch
912 (31 December 1969 or 1 January 1970).
913
914 * FULL-TEXT "EXCERPTS" NOW PROPERLY SHORTENED. Based on a straightforward
915 reading of the existing RSS specs, it's reasonable for the
916 rss:description element to be read as a plaintext summary or excerpt for
917 the item containing the description -- with the full text of the item,
918 if available, in another, better-suited element, such as the de facto
919 standard content:encoded extension element. The problem is that uses of
920 RSS rarely have much to do with anything like a straightforward reading
921 of the specs. As a result, many actual RSS producers in the wild put the
922 full text of the article in a description element. But since
923 FeedWordPress has treated this text as a summary, this produces
924 aggregated posts with lengthy "excerpts" containing the full text of the
925 article. This release of FeedWordPress fixes the problem by doing a
926 little digging before treating rss:description as a summary: if the
927 description element is used properly as a plain text summary, then
928 FeedWordPress will take the summary provided by the feed, rather than
929 recreating its own excerpt from the full text; but if an RSS item has no
930 full-text element other than description, FeedWordPress will treat the
931 description element as the full text of the article, and generate a
932 shortened excerpt automatically from that text.
933
934 #### API ####
935
936 * TEMPLATE API: new template tags `get_local_permalink()` and
937 `the_local_permalink()` allow you to access the permalink for a post on
938 your aggregator site, even when FeedWordPress is rewriting permalinks to
939 point to the original source site.
940
941 * NEW HOOKS FOR ADD-ONS AND FILTERS: I have added a number of new hooks
942 which allow add-on modules to filter more precisely, gather information
943 at more points, and to enhance the FeedWordPress admin interface. For
944 a list of new hooks and documentation, see the FeedWordPress
945 documentation wiki at
946 <http://feedwordpress.radgeek.com/wiki/add-ons-and-filters>
947
948 * FILTER API: A number of new utility methods have been added to the
949 SyndicatedPost class to make it easier for filters and add-ons to
950
951 * FILTER API: Globals $fwp_channel and $fwp_feedmeta DEPRECATED. These
952 global variables, originally introduced to allow filters access to
953 information about the source feed in `syndicated_item` filters (which
954 were passed in through global variables rather than as parameters
955 because of a bug in WP 1.5 which was then fixed in 1.5.1) have been
956 DEPRECATED. If you have any filters or add-ons which still depend on
957 these global variables, you should see about fixing them to access data
958 about the source feed using the SyndicatedPost::link element instead.
959 For documentation, see the FeedWordPress documentation wiki at
960 <http://feedwordpress.radgeek.com/wiki/syndicatedpost> and
961 <http://feedwordpress.radgeek.com/wiki/syndicatedlink>.
962
963 * DIAGNOSTICS: I've included a number of new diagnostic options and
964 messages, which should allow an experienced user to better investigate
965 any problems that may crop up.
966
967 #### Bug Fixes ####
968
969 * BUGFIX: & IN PERMALINKS NO LONGER CAUSING ATOM OR HTML VALIDATION
970 EFFORTS: Many users reported an issue in which syndicating a feed with
971 special XML characters in the URLs (& was the most common, since it is
972 used to separate HTTP GET parameters) would cause the aggregator's
973 feeds to produce invalid (malformed) XML. This update addresses the
974 issue in Atom feeds. Unfortunately, it has not been technically possible
975 to address the problem in RSS 2.0 feeds, due to limitations on
976 WordPress's internal templates for RSS feeds.
977
978 * BUGFIX: BROKEN URLS IN "POPULAR POSTS" AND SIMILAR PLUGINS SHOULD NO
979 LONGER BE BROKEN. A number of users noticed an issue where plugins and
980 templates that listed posts in locations outside of the post loop
981 (for example, "Popular Posts"-style plugins that listed posts in the
982 sidebar), often produced the wrong URL for post links. (Typically, all
983 the posts listed would get the same wrong URL.) This should now be
984 fixed. Thanks to Björn for sending in a quick fix!
985
986 * MINOR BUGFIXES: This release includes a number of fixes to minor bugs
987 and compatibility issues, including: silent failures of the "Syndicate"
988 button, "Illegal Offset Type" error messages from MagpieRSS, and others.
989
990 = 2009.0707 =
991
992 * BUGFIX: WORDPRESS 2.8 AJAX COMPATIBILITY ISSUES RESOLVED (blank or
993 truncated "Syndicated Sites" administration page): Due to changes in the
994 AJAX interface elements between WordPress 2.7 and WordPress 2.8, several
995 FeedWordPress users encountered an issue where the front "Syndication"
996 page in the FeedWordPress administrative interface would come up blank,
997 without the normal "Syndicated Sites" list and "Update" control, or
998 sometimes wth the boxes visible but one or both of them truncated, with
999 only the title bar. This issue should now be resolved: with the new
1000 version of FeedWordPress, the compatibility issue that caused the
1001 disappearance should be eliminated, and if boxes are shown with only
1002 their handle visible, you should once again be able to drop down the
1003 rest of the box by clicking once on its title bar.
1004
1005 * BUGFIX: TAG SETTING WIDGET FIXED. Due to changes in interface elements
1006 between WordPress 2.7 and WordPress 2.8, people using FeedWordPress with
1007 WordPress 2.8 found that the widget for setting tags to be applied to
1008 all syndicated posts, or all syndicated posts from a particular feed,
1009 no longer displayed "Add" and "Remove" buttons for individual tags. This
1010 issue has now been fixed, and the tagging widget should once again work
1011 more or less exactly like the tagging widget for individual posts in the
1012 normal WordPress admin interface.
1013
1014 = 2009.0618 =
1015
1016 * BUGFIX: MYSTERY ERRORS WITH WITH WP_Http_Fsockopen HTTP TRANSPORT
1017 ELIMINATED: Thanks to a combination of a subtle bug in FeedWordPress,
1018 and changes to the HTTP transport code in WordPress, a number of users
1019 encountered an error in which any time they attempted to add a new feed
1020 through the FeedFinder interface, FeedWordPress would fail and display
1021 an HTTP request failure diagnostic message. The subtle bug has been
1022 fixed, and with it, most of these errors should now be eliminated.
1023
1024 Be sure to upgrade your MagpieRSS to the most recent MagpieRSS version
1025 after you have insalled FeedWordPress 2009.0618, or this bug fix will
1026 not take effect.
1027
1028 = 2009.0613 =
1029
1030 * INTERFACE/BUGFIX: WORDPRESS 2.8 CATEGORY BOX FIX. Thanks to a subtle
1031 change in class names between the WordPress 2.7 and 2.8 stylesheets,
1032 category boxes in the FeedWordPress settings interface tended to overflow
1033 and have a lot of messy-looking overlapping text under WordPress 2.8.
1034 This has now been fixed.
1035
1036 * FeedFinder FAILURE DIAGNOSTICS: When FWP's FeedFinder fails to find any
1037 feeds at a given URL (for example, when you are trying to add a
1038 subscription through the administrative interface and you run into an
1039 error message), FeedWordPress now provides more diagnostic information
1040 for the reasons behind the failure. If that helps you, great; if not,
1041 it should help me respond more intelligently to your support request..
1042
1043 = 2009.0612 =
1044
1045 * WORDPRESS 2.8 COMPATIBILITY: FeedWordPress 2009.0612 has been tested for
1046 compatibility with the recent version 2.8 release of WordPress.
1047
1048 * INTERFACE RESTRUCTURING: In order to avoid settings posts from becoming
1049 too crowded, and to modularize and better organize the user interface,
1050 new "Posts" and "Categories & Tags" subpages have been created under the
1051 "Syndication" menu. "Posts" controls settings for individal syndicated
1052 posts (such as publication status, comment and ping status, whether or
1053 not to use the original location of the post as the permalink, whether
1054 or not to expose posts to formatting filters, and so on). "Categories &
1055 Tags" controls settings for assigning new syndicated posts to categories
1056 and tags, such as categories or tags to apply to all syndicated posts,
1057 and how to handle categories that do not yet exist in the WordPress
1058 database. These subpages, like the Authors subpage, handle settings for
1059 the global default level and for individual syndicated feeds.
1060
1061 Corresponding to these new subpages, the old Syndication Settings and
1062 Feed Settings subpages have been cleaned up and simplified, and now only
1063 link to the appropriate subpages for options that can be set in the
1064 Posts, Authors, or Categories & Tags subpages.
1065
1066 * FEATURE: ADD CUSTOM SETTINGS TO EACH SYNDICATED POST: FeedWordPress has
1067 long had an interface for creating custom settings for each syndicated
1068 *feed* which could be retrieved in templates using the `get_feed_meta()`
1069 template function. But it had no feature for adding custom fields to
1070 each individual syndicated *post*. In response to requests from users, I
1071 have added the ability to apply custom fields to each individual
1072 syndicated post, using the new Syndication --> Posts subpage. You can
1073 set up custom fields to be applied to every syndicated post, or custom
1074 fields to be applied to syndicated posts from a particular feed.
1075
1076 * FEATURE: MAGPIERSS VERSION CHECK AND UPGRADE: FeedWordPress will attempt
1077 to determine whether or not you are using the upgraded version of
1078 MagpieRSS that comes packaged with FeedWordPress. If not, it will throw
1079 an error on admin pages, and, if you are a site administrator, it will
1080 give you the option to ignore the error message, or to attempt an
1081 automatic upgrade (using a native file copy). If the file copy fails,
1082 FeedWordPress will offer some guidance on how to perform the upgrade
1083 manually.
1084
1085 * BLANK POSTS PROBLEM NO LONGER OCCURS WITH OLD & BUSTED MAGPIERSS: Due
1086 to the fact that I relied on a content normalization that occurs in my
1087 upgraded version of MagpieRSS, but not in the old & busted version of
1088 MagpieRSS that ships with WordPress, until this version, if you tried to
1089 syndicate an Atom feed without having performed the (*strongly
1090 recommended*) MagpieRSS upgrade, all of the posts would come up with
1091 completely blank contents. That's not because MagpieRSS couldn't read
1092 the data, but rather because the new Magpie version puts that data in a
1093 location where the old version doesn't, and I was only looking in that
1094 newer location. Now it checks for both, meaning that posts will continue
1095 to display their contents even if you don't upgrade MagpieRSS. (But you
1096 **really should** upgrade it, anyway.)
1097
1098 * BUGFIX: RELATIVE URI RESOLUTION FOR POST CONTENT RESTORED. Some time
1099 back, I added support for resolving relative URIs against xml:base on
1100 feeds that support it to the MagpieRSS upgrade in FeedWordPress. Then I
1101 took out code that did the same thing from the main FeedWordPress code.
1102 Of course, the problem is that some people, even though it is clearly
1103 stupid or evil to do so, still include relative URIs for images or links
1104 in posts on feed formats that do *not* adequately support xml:base
1105 (notably, RSS 2.0 feeds). In response to a user request, I have added
1106 this functionality back in, so that MagpieRSS will resolve any relative
1107 URIs that it knows how to resolve using xml:base, and then FeedWordPress
1108 will attempt to resolve any relative URIs that are left over afterwards.
1109
1110 * BUGFIX: INTERFACE OPTION FOR SETTING SYNDICATED POST PUBLICATION STATUS
1111 ON A FEED-BY-FEED BASIS HAS BEEN RESTORED: Due to a version-checking
1112 bug, users of WordPress 2.7.x lost an option from the "Edit a syndicated
1113 feed" interface which allowed them to determine whether newly syndicated
1114 posts should be published immediately, held as "Pending Review," saved
1115 as drafts, or saved as private posts. (The option to change this
1116 setting globally remained in place, but users could no longer set it on
1117 a feed-by-feed basis.) The version-checking bug has been fixed, and the
1118 option has been restored.
1119
1120 * BUGFIX: "ARE YOU SURE?" FATAL ERROR ELIMINATED AND SECURITY IMPROVED:
1121 Under certain circumstances (for example, when users have configured
1122 their browser or proxy not to send HTTP Referer headers, for privacy or
1123 other reasons), many features in the FeedWordPress administrative
1124 interface (such as adding new feeds or changing settings) would hit a
1125 fatal error, displaying only a cryptic message reading "Are you sure?"
1126 and a blank page following it. This problem has been eliminated by
1127 taking advantage of WordPress's nonce functions, which allow the
1128 security check which ran into this error to work properly even without
1129 receiving an HTTP Referer header. (N.B.: WordPress's nonce functions
1130 were first introduced in WordPress 2.0.3. If you're using FeedWordPress
1131 with an older version of WordPress, there's no fix for this problem:
1132 you'll just need to turn Referer headers back on. Sorry.)
1133
1134 * BUGFIX: MANUALLY-ALTERED POST STATUS, COMMENT STATUS, AND PING STATUS NO
1135 LONGER REVERTED BY POST UPDATES: If you manually altered the post status,
1136 comment status, or ping status of a syndicated post from what it was set
1137 to when first syndicated -- for example, if you had a feed that was set
1138 to bring in new posts as "Pending Review," and you then marked some of
1139 the pending posts as "Published" and others as "Unpublished" -- then
1140 in previous versions of FeedWordPress, these manual changes to the
1141 status would be lost -- so that, for example, your Published or Unpublished
1142 articles would revert to Pending Review -- if the source feed made any
1143 upates to the item. This could make the Pending Review feature both
1144 unreliable and also extremely frustrating to work with. The good news is
1145 that this bug has since been fixed: if you manually update the status
1146 of a post, it will no longer be reverted if or when the post is updated.
1147
1148 * BUGFIX: OCCASIONAL FATAL ERROR ON UPDATE ELIMINATED: Under certain
1149 limited conditions (specifically, when both the title and the content of
1150 a post to be updated are empty), an attempt to update the post would
1151 result in a fatal error. This has been fixed.
1152
1153 * INTERFACE: "CONFIGURE SETTINGS" CONVENIENCE LINK ADDED TO CONFIRMATION
1154 MESSAGE WHEN A NEW FEED IS ADDED: When you add a new subscription to
1155 FeedWordPress, the message box that appears to confirm it now includes a
1156 handy link to the feed's settings subpage, so that you can quickly set
1157 up any special settings you may want to set up for the new feed, without
1158 having to hunt through the list of all your other subscriptions to pick
1159 out the new one.
1160
1161 * INTERFACE: SIMPLIFYING AND CLARIFYING AUTOMATIC UPDATES SETTINGS. I have
1162 removed an interval setting for the cronless automatic updates which has
1163 confused many FeedWordPress users. In past versions of FWP, when you
1164 turned on automatic updates, you would be presented with a time interval
1165 setting which controlled how often FeedWordPress would check for feeds
1166 ready to be polled for updates. (That is, it DID NOT control how often
1167 feeds *would be polled*; it controlled how often FeedWordPress would
1168 *check* for feeds that *had become ready to poll*. The schedule on which
1169 feeds became ready for polling was still controlled either by requests
1170 encoded in elements within the feed itself, or else according to an
1171 internal calculation within FeedWordPress, averaging out to about 1 hour,
1172 if the feed did not include any scheduling request elements.) Since many
1173 users very often (and understandably) confused the purpose of this
1174 setting, and since the setting is for a feature that's actually very
1175 unlikely to require any manual control by the user, I have removed the
1176 setting; FeedWordPress now simply uses the default value of checking for
1177 feeds to poll every 10 minutes.
1178
1179 * FEEDFINDER PERFORMANCE IMPROVEMENT: FeedWordPress's FeedFinder class
1180 now uses `array_unique()` to make sure that it doesn't waste time
1181 repeatedly iterating over and polling the same URI. Props to Camilo
1182 (<http://projects.radgeek.com/2008/12/14/feedwordpress-20081214/#comment-20090122160414>).
1183
1184 = 2008.1214 =
1185
1186 * WORDPRESS 2.7 COMPATIBILITY: FeedWordPress has been tested for
1187 compatibility with the newly released WordPress 2.7. WordPress 2.7 has
1188 deprecated the Snoopy library for HTTP requests, which caused a fatal
1189 error for users who had not installed the MagpieRSS upgrade (or whose
1190 installation of the MagpieRSS upgrade was overwritten by a recent update
1191 of WordPress). FeedWordPress now handles things gracefully when Snoopy
1192 is not immediately available.
1193
1194 * INTERFACE SPIFFED UP: Interface elements have been updated so that
1195 FeedWordPress's management interface fits in more naturally with the
1196 WordPress 2.7 interface (including a new logo and a number of small
1197 interface tweaks).
1198
1199 * BUG WITH TAGS FOR SYNDICATED ARTICLES FIXED: Several users encountered a
1200 bug with the option to add tags to all syndicated posts under
1201 Syndication --> Settings -- if you told FeedWordPress to add more than
1202 one tag to all syndicated posts, instead of doing so correctly, it would
1203 add a *single* tag instead, whose name was composed of the names of all
1204 the tags you asked it to add. This bug was the result of nothing more
1205 dignified than a typographical error on my part. It has now been fixed.
1206
1207 * MORE INFORMATION AVAILABLE WHEN FEEDWORDPRESS CAN'T FIND A FEED: When
1208 you enter a URL for a new syndication source, FeedWordPress uses a
1209 simple feed-finding algorithm (originally based on Mark Pilgrim's
1210 Universal Feed Finder) to try to determine whether the URL is the URL
1211 for a feed, or, if the URL points to an ordinary website rather than to
1212 a feed, whether there is a feed for that website. All well and good, but
1213 if FeedWordPress failed to find a feed, for whatever reason, it would
1214 typically return nothing more than a nasty little note to the effect of
1215 "no feed found," without any explanation of what went wrong.
1216 FeedWordPress now keeps track of error conditions from the HTTP
1217 requests that it uses in the course of looking for the feed, and so may
1218 be able to give you a bit more information about the nature of the
1219 problem if something goes wrong.
1220
1221
1222 = 2008.1105 =
1223
1224 * INTERFACE RESTRUCTURING AND SYNDICATION --> AUTHORS PAGE: As a first
1225 step towards modularizing and better organizing the user interface, a
1226 new "Authors" subpage has been created under the Syndication menu, which
1227 controls settings for syndicated authors, both at the global default
1228 level and at level of individual syndicated feeds.
1229
1230 * BUG RELATED TO THE ATTRIBUTION OF POSTS TO THE WRONG AUTHOR FIXED: Some
1231 users encountered an issue in which posts by different authors on
1232 different blogs -- especially blogs generated by Blogger -- were
1233 mistakenly attributed to a single author. The problem was caused by the
1234 way in which FeedWordPress matches syndicated authors to user accounts
1235 in the WordPress database: normally, if two feeds each list an author
1236 with the same e-mail address, they are counted as being the same person.
1237 Normally this works well, but it creates an issue in cases where
1238 blogging software assigns a single anonymous e-mail address to users who
1239 do not want their real e-mail address published. This is, for example,
1240 what Blogger does (by giving all users a default e-mail address of
1241 <noreply@blogger.com> if they don't want their own e-mail address
1242 listed). FeedWordPress now allows the user to correct for this problem
1243 with a couple of new settings under **Syndication --> Authors**, which
1244 allow users to turn off e-mail based author matching for particular
1245 addresses, or, if desired, to turn it off entirely. By default, e-mail
1246 based author matching is still turned on, but disabled for a list of
1247 known generic e-mail addresses. Right now, the "list" consists entirely
1248 of <noreply@blogger.com>; if you know other addresses that should be
1249 added, please [contact me](http://radgeek.com/contact) to let me know.
1250
1251 Please note that if you have already encountered this issue on your
1252 blog, upgrading FeedWordPress will prevent it from re-occurring in the
1253 future, but you still need to do two other things to fix the existing
1254 problem on your blog.
1255
1256 First, for each feed where posts have been mis-attributed, you need to
1257 change the existing author mapping rules to re-map a a syndicated
1258 author's name to the proper target account. Go to **Syndication -->
1259 Authors**, select the feed you want to change from the drop-down list,
1260 and then change the settings under the "Syndicated Authors" section.
1261 (You will probably need to select "will be assigned to a new user..." to
1262 create a new user account with the appropriate name.)
1263
1264 Second, for each feed where posts have been mis-attributed, you need to
1265 re-assign already-syndicated posts that were mis-attributed to the
1266 correct author. You can do that from **Syndication --> Authors** by
1267 using the author re-assignment feature, described below.
1268
1269 * AUTHOR RE-ASSIGNMENT FOR A PARTICULAR FEED: The author settings page
1270 for each syndicated feed, under **Syndication --> Authors**, now
1271 includes an section titled "Fixing mis-matched authors," which provides
1272 an interface for re-assigning or deleting all posts attributed to a
1273 particular author on a particular feed.
1274
1275 * SUPPORT FOR `<atom:source>` ELEMENT IN SYNDICATED FEEDS: Some feeds
1276 (for example, those produced by FeedWordPress) aggregate content from
1277 several different sources, and include information about the original
1278 source of the post in an `<atom:source>` element. A new setting under
1279 **Syndication --> Options** allows you to control what FeedWordPress
1280 will report as the source of posts syndicated from aggregator feeds in
1281 your templates and feeds: you can have FeedWordPress report that the
1282 source of a post is the aggregator feed itself, or you can have it
1283 report that the source of a post is the original source that the
1284 aggregator originally syndicated the post from.
1285
1286 By default, FeedWordPress will report the aggregator, not the original
1287 source, as the source of a syndicated item.
1288
1289 * LOAD BALANCING AND TIME LIMITING FEATURES FOR UPDATES: Some users have
1290 encountered issues due to running up against PHP execution time limits
1291 during the process of updating large syndicated feeds, or a very large
1292 set of syndicated feeds. FeedWordPress now has a feature that allows you
1293 to limit the total amount of time spent updating a feed, through the
1294 "Time limit on updates" setting under **Syndication --> Options**. By
1295 turning on this setting and adjusting the time limit to a low enough
1296 figure to avoid your PHP installation's time-out setting. (PHP execution
1297 time limits are usually in the vicinity of 30 seconds, so an update
1298 time limit of 25 seconds or so should provide plenty of time for updates
1299 while allowing a cushion of time for other, non-update-related functions
1300 to do their work.)
1301
1302 If feed updates are interrupted by the time limit, FeedWordPress uses
1303 some simple load balancing features to make sure that updates to other
1304 feeds will not be blocked by the time-hogging feed, and will also make
1305 sure that when the interrupted update is resumed, FeedWordPress will
1306 skip ahead to resume processing items at the point at which it was
1307 interrupted last time, so that posts further down in the feed will
1308 eventually get processed, and not get blocked by the amount of time it
1309 takes to process the items higher up in the feed.
1310
1311 * `guid` INDEX CREATION BUTTON: FeedWordPress frequently issues queries on
1312 the `guid` column of the WordPress posts database (since it uses post
1313 guid URIs to keep track of which posts it has syndicated). In very large
1314 FeedWordPress installations, you can often significantly improve
1315 performance by creating a database index on the `guid` column, but
1316 normally you would need to poke around with MySQL or a tool like
1317 phpMyAdmin to do this. FeedWordPress can now save you the trouble: to
1318 create an index on the `guid` column, just go to
1319 **Syndication --> Options**, and mash the button at the bottom of the
1320 "Back End" section.
1321
1322 = 2008.1101 =
1323
1324 * INTERFACE BUG THAT PREVENTED ADDING NEW SITES FIXED: The UI reforms in
1325 FWP 2008.1030 unintentionally introduced a bug that prevents clean
1326 installations of FeedWordPress from providing an input box for adding
1327 new feeds to the list of syndicated feeds. This bug has been fixed.
1328
1329 = 2008.1030 =
1330
1331 * WORDPRESS 2.6 COMPATIBILITY: FeedWordPress should now be compatible with
1332 WordPress 2.6, and should work more or less seamlessly with the new post
1333 revision system. A bug which caused multiple new revisions to be created
1334 for posts on certain feeds, regardless of whether or not the item had
1335 been updated, has been fixed.
1336
1337 * INTERFACE IMPROVEMENTS: The user interface has been substantially
1338 restyled to fit in better with the visual style of WordPress 2.5 and
1339 2.6.
1340
1341 * YOUTUBE BUG FIXED: POSTS SYNDICATED THROUGH AN AUTOMATIC UPDATE ARE NO
1342 LONGER STRIPPED OF `<OBJECT>` TAGS AND CERTAIN OTHER HTML ELEMENTS: Due
1343 to the way that some versions of WordPress process posts that are
1344 inserted into the database when no user is logged in, many users
1345 experienced an issue where YouTube videos and other content using the
1346 HTML `<object>` tag would be stripped out of posts that were syndicated
1347 during an automatic update. (Posts that were syndicated through manual
1348 updates from within the WordPress Dashboard were not affected, because
1349 the issue does not arise when an update is executed under a logged-in
1350 administrator's credentials.) This bug has now been fixed; YouTube
1351 videos and other content using `<object>` tags should now appear
1352 properly in syndicated posts, regardless of the way in which the post
1353 was syndicated.
1354
1355 * AJAX BUGS FIXED: Bugs which blocked the normal operation of WordPress
1356 2.5's AJAX interface elements when FeedWordPress was activated have been
1357 fixed.
1358
1359 * TAG SUPPORT: A couple of features have been introduced to take advantage
1360 of the tagging features in WordPress 2.3.x, 2.5.x, and 2.6.x. Now, when
1361 unfamiliar categories are encountered for posts on a feed, you can
1362 choose for FeedWordPress (1) to drop the category; (2) to drop the
1363 category and to filter out any post that does not match at least one
1364 familiar category; (3) to create a new category with that name, or,
1365 now, you can also have FeedWordPress (4) create a new *tag* with that
1366 name. This option can be set site-wide under Syndication --> Options,
1367 or it can be set on a feed-by-feed basis in a feed's Edit screen.
1368
1369 In addition, you can now set particular tags to apply to all incoming
1370 syndicated posts, under Syndication --> Options, or you can set tags
1371 to apply to all incoming syndicated posts from a particular feed in that
1372 feed's Edit screen.
1373
1374 * FORMATTING FILTERS: There is a new option available under Syndication ->
1375 Options which allows users to choose whether or not to expose syndicated
1376 posts to being altered by formatting filters. By default, FeedWordPress
1377 has always protected syndicated posts (which are already in display-ready
1378 HTML when they are syndicated) from being reformatted by formatting
1379 filters. However, this approach means that certain plugins which depend
1380 on formatting filters (for example, to add "Share This" bars or relevant
1381 links to the end of a post) are blocked from working on any syndicated
1382 posts. If you want to use one of these plugins together with
1383 FeedWordPress, you can now do so by changing the "Formatting Filters"
1384 setting from "Protect" to "Expose."
1385
1386 * `<atom:source>` ELEMENTS NOW INCLUDED IN ATOM FEED: Atom 1.0 provides
1387 a standard method for aggregators to indicate information about the original source of
1388 a syndicated post, using the `<atom:source>` element. FeedWordPress now
1389 introduces standard `<atom:source>` elements including the title, homepage, and
1390 feed URI of the source from which a syndicated post was syndicated. Cf.
1391 <http://www.atomenabled.org/developers/syndication/atom-format-spec.php#element.source>
1392
1393 * MODULARIZATION OF CODE: The code for different elements of FeedWordPress
1394 has been broken out into several modules for easier inspection,
1395 documentation, and maintenance of the code.
1396
1397 * VERSIONING SCHEME CHANGED: FeedWordPress's feature set has proven stable
1398 enough that it can now be removed from beta status; a good thing, since
1399 I was very quickly running out of version numbers to use. New releases
1400 of FeedWordPress will have version numbers based on the date of their
1401 release.
1402
1403 = 0.993 =
1404
1405 * WORDPRESS 2.5.1 COMPATIBILITY: FeedWordPress should now be compatible
1406 with WordPress 2.5.1.
1407
1408 * WORDPRESS 2.5 INTERFACE IMPROVEMENTS: FeedWordPress's Dashboard
1409 interface has undergone several cosmetic changes that should help it
1410 integrate better with the WordPress Dashboard interface in WordPress
1411 version 2.5.x.
1412
1413 * SYNDICATED POSTS CAN BE MARKED AS "PENDING REVIEW": WordPress 2.3 users
1414 can now take advantage of WordPress's new "Pending Review" features for
1415 incoming syndicated posts. Posts marked as "Pending Review" are not
1416 published immediately, but are marked as ready to be reviewed by an
1417 Administrator or Editor, who can then choose to publish the post or
1418 hold it back. If you want to review syndicated posts from a particular
1419 feed, or from all feeds, before they are posted, then use
1420 Syndication --> Syndicated Sites --> Edit or Syndication --> Options to
1421 change the settings for handling new posts.
1422
1423 * AWARE OF NEW URI FOR del.icio.us FEEDS: Previous releases of
1424 FeedWordPress already automatically split del.icio.us tags up
1425 appropriately appropriately when generating categories. (del.icio.us
1426 feeds smoosh all the tags into a single `<dc:subject>` element,
1427 separated by spaces; FeedWordPress un-smooshes them into multiple
1428 categories by separating them at whitespace.) Unfortunately, del.icio.us
1429 recently broke the existing behavior by changing host names for their
1430 feeds from del.icio.us to feeds.delicious.com. Version 0.993 accounts
1431 for the new host name and un-breaks the tag splitting.
1432
1433 = 0.992 =
1434
1435 * AUTHOR RE-MAPPING: FeedWordPress now offers considerable control over
1436 how author names on a feed are translated into usernames within the
1437 WordPress database. When a post by an unrecognized author comes in,
1438 Administrators can now specify any username as the default username to
1439 assign the post to by setting the option in Syndication --> Options
1440 (formerly FeedWordPress only allowed you to assign such posts to user
1441 #1, the site administrator). Administrators can also create re-mapping
1442 rules for particular feeds (under Syndication --> Syndicated Sites -->
1443 Edit), so that (for example) any posts attributed to "Administrator"
1444 on the feed <http://praxeology.net/blog/feed/> will be assigned to
1445 a user named "Roderick T. Long," rather than a user named
1446 "Administrator." These settings also allow administrators to filter out
1447 posts by particular users, and to control what will happen when
1448 FeedWordPress encounters a post by an unrecognized user on that
1449 particular feed.
1450
1451 * BUG RELATED TO URIS CONTAINING AMPERSAND CHARACTERS FIXED: A bug in
1452 WordPress 2.x's handling of URIs in Blogroll links created problems for
1453 updating any feeds whose URIs included an ampersand character, such as
1454 Google News RSS feeds and other feeds that have multiple parameters
1455 passed through HTTP GET. If you experienced this bug, the most likely
1456 effect was that FeedWordPress simply would not import new posts from a
1457 feed when instructred to do so, returning a "0 new posts" response. In
1458 other cases, it might lead to unpredictable results from feed updates,
1459 such as importing posts which were not contained in the feed being
1460 syndicated, but which did appear elsewhere on the same website. This bug
1461 has, hopefully, been resolved, by correcting for the bug in WordPress.
1462
1463 = 0.991 =
1464
1465 * WORDPRESS MU COMPATIBILITY: FeedWordPress should now be compatible with
1466 recent releases of WordPress MU. Once FeedWordPress is made available
1467 as a plugin, each individual blog can choose to activate FeedWordPress
1468 and syndicate content from its own set of contributors.
1469
1470 * DISPLAY OF MAGPIE WARNINGS: A number of MagpieRSS warnings or error
1471 messages that were displayed when performing an automatic update are
1472 no longer displayed, unless debugging parameters have been explicitly
1473 enabled.
1474
1475 * BUG RELATED TO INTERNATIONAL CHARACTERS IN AUTHOR NAMES FIXED: Due to a
1476 subtle incompatability between the way that FeedWordPress generated new
1477 user information, and the way that WordPress 2.0 and later added new
1478 authors to the database, FeedWordPress might end up creating duplicate
1479 authors, or throwing a critical error message, when it encountered
1480 authors whose names included international characters. This
1481 incompatability has now been fixed; hopefully, authors with
1482 international characters in their names should now be handled properly.
1483
1484 * `<media:content>` BUG IN MAGPIERSS FIXED: A bug in MagpieRSS's handling
1485 of namespaced elements has been fixed. Among other things, this bug
1486 caused items containing a Yahoo MediaRSS `<media:content>` element (such
1487 as many of the feeds produced by wordpress.com) to be represented
1488 incorrectly, with only a capital "A" where the content of the post
1489 should have been. Feeds containing `<media:content>` elements should now
1490 be syndicated correctly.
1491
1492 * update_feedwordpress PARAMETER: You can now use an HTTP GET parameter
1493 (`update_feedwordpress=1`) to request that FeedWordPress poll its feeds
1494 for updates. When used together with a crontab or other means of
1495 scheduling tasks, this means that you can keep your blog automatically
1496 updated on a regular schedule, even if you do not choose to use the
1497 cron-less automatic updates option.
1498
1499 * Some minor interface-related bugs were also fixed.
1500
1501
1502 = 0.99 =
1503
1504 Version 0.99 adds several significant new features, fixes some bugs, and
1505 provides compatability with WordPress 2.2.x and 2.3.x.
1506
1507 * WORDPRESS 2.2 AND 2.3 COMPATIBILITY: FeedWordPress should now be
1508 compatible with WordPress version 2.2 and the upcoming WordPress
1509 version 2.3. In particular, it has been tested extensively against
1510 WordPress 2.2.3 and WordPress 2.3 Release Candidate 1.
1511
1512 * AUTOMATIC UPDATES WITHOUT CRON: FeedWordPress now allows you to
1513 automatically schedule checks for new posts without using external task
1514 scheduling tools such as cron. In order to enable automatic updates, go
1515 to **Syndication --> Options** and set "Check for new posts" to
1516 "automatically." For details, see "Automatic Feed Updates" in
1517 README.text.
1518
1519 An important side-effect of the changes to the update system is that if
1520 you were previously using the cron job and the `update-feeds.php` script
1521 to schedule updates, you need to change your cron set-up. The old
1522 `update-feeds.php` script no longer exists. Instead, if you wish to use
1523 a cron job to guarantee updates on a particular schedule, you should
1524 have the cron job fetch the front page of your blog (for example, by
1525 using `curl http://www.zyx.com/blog/ > /dev/null`) instead of activating
1526 the `update-feeds.php` script. If automatic updates have been enabled,
1527 fetching the front page will automatically trigger the update process.
1528
1529 * INTERFACE REORGANIZATION: All FeedWordPress functions are now located
1530 under a top-level "Syndication" menu in the WordPress Dashboard. To
1531 manage the list of syndicated sites, manually check for new posts on
1532 one or more feeds, or syndicate a new site, you should use the main page
1533 under **Syndication**. To change global settings for FeedWordPress,
1534 you should use **Syndication --> Options**.
1535
1536 * FILE STRUCTURE REORGANIZATION: Due to a combination of changing styles
1537 for FeedWordPress plugins and lingering bugs in the FeedWordPress admin
1538 menu code, the code for FeedWordPress is now contained in two different
1539 PHP files, which should be installed together in a subdirectory of your
1540 plugins directory named `feedwordpress`. (See README.text for
1541 installation and upgrade instructions relating to the change.)
1542
1543 * MULTIPLE CATEGORIES SETTING: Some feeds use non-standard methods to
1544 indicate multiple categories within a single category element. (The most
1545 popular site to do this is del.icio.us, which separates tags with a
1546 space.) FeedWordPress now allows you to set an optional setting, for any
1547 feed which does this, indicating the character or characters used to
1548 divide multiple categories, using a Perl-compatible regular expression.
1549 (In the case of del.icio.us feeds, FeedWordPress will automatically use
1550 \s for the pattern without your having to do any further configuration.)
1551 To turn this setting on, simply use the "Edit" link for the feed that
1552 you want to turn it on for.
1553
1554 * REGULAR EXPRESSION BUG FIXED: Eliminated a minor bug in the regular
1555 expressions for e-mail addresses (used in parsing RSS `author`
1556 elements), which could produce unsightly error messages for some users
1557 parsing RSS 2.0 feeds.
1558
1559 * DATE / UPDATE BUG FIXED: A bug in date handling was eliminated that may
1560 have caused problems if any of (1) WordPress, or (2) PHP, or (3) your
1561 web server, or (4) your MySQL server, has been set to use a different
1562 time zone from the one that any of the others is set to use. If
1563 FeedWordPress has not been properly updating updated posts, or has been
1564 updating posts when there shouldn't be any changes for the update, this
1565 release may solve that problem.
1566
1567 * GOOGLE READER BUGS FIXED: A couple of bugs that made it difficult for
1568 FeedWordPress to interact with Google Reader public feeds have been
1569 fixed. Firstly, if you encountered an error message reading "There was a
1570 problem adding the newsfeed. [SQL: ]" when you tried to add the feed,
1571 the cause of this error has been fixed. Secondly, if you succeeded in
1572 getting FeedWordPress to check a Google Reader feed, only to find that
1573 the title of posts had junk squashed on to the end of them, that bug
1574 has been fixed too. To fix this bug, you must install the newest version
1575 of the optional MagpieRSS upgrade.
1576
1577 * FILTER PARAMETERS: Due to an old, old bug in WordPress 1.5.0 (which was
1578 what was available back when I first wrote the filter interface),
1579 FeedWordPress has traditionally only passed one parameter to
1580 syndicated_item and syndicated_post filters functions -- an array
1581 containing either the Magpie representation of a syndicated item from
1582 the feed, or the database representation of a post about to be inserted
1583 into the WordPress database. If you needed information about the feed
1584 that the item came from, this was accessible only through a pair of
1585 global variables, $fwp_channel and $fwp_feedmeta.
1586
1587 Since it's been a pretty long time since WordPress 1.5.0 was in
1588 widespread usage, I have gone ahead and added an optional second
1589 parameter to the invocation of the syndicated_item and syndicated_post
1590 filters. If you have written a filter for FeedWordPress that uses either
1591 of these hooks, you can now register that filter to accept 2 parameters.
1592 If you do so, the second parameter will be a SyndicatedPost object,
1593 which, among other things, allows you to access information about the
1594 feed from which an item is syndicated using the $post->feed and the
1595 $post->feedmeta elements (where $post is the name of the second
1596 parameter).
1597
1598 NOTE THAT THE OLD GLOBAL VARIABLES ARE STILL AVAILABLE, for the time
1599 being at least, so existing filters will not break with the upgrade.
1600 They should be considered deprecated, however, and may be eliminated in
1601 the future.
1602
1603 * FILTER CHANGE / BUGFIX: the array that is passed as the first argument
1604 syndicated_post filters no longer is no longer backslash-escaped for
1605 MySQL when filters are called. This was originally a bug, or an
1606 oversight; the contents of the array should only be escaped for the
1607 database *after* they have gone through all filters. IF YOU HAVE WRITTEN
1608 ANY syndicated_post FILTERS THAT PRESUME THE OLD BEHAVIOR OF PASSING IN
1609 STRINGS THAT ARE ALREADY BACKSLASH-ESCAPED, UPDATE YOUR FILTERS
1610 ACCORDINGLY.
1611
1612 * OTHER MINOR BUGFIXES AND INTERNAL CHANGES: The internal architecture of
1613 FeedWordPress has been significantly changed to make the code more
1614 modular and clean; hopefully this should help reduce the number of
1615 compatibility updates that are needed, and make them easier and quicker
1616 when they are needed.
1617
1618 = 0.981 =
1619
1620 Version 0.981 is a narrowly targeted bugfix and compatibility release, whose
1621 main purpose is to resolve a major outstanding problem: the incompatibility
1622 between version 0.98 of WordPress and the recently released WordPress 2.1.
1623
1624 * WORDPRESS 2.1 COMPATIBILITY: FeedWordPress is now compatible with
1625 WordPress 2.1, as well as retaining its existing support for WordPress
1626 2.0 and 1.5. Incompatibilities that resulted in database warnings, fatal
1627 errors, and which prevented FeedWordPress from syndicating new posts,
1628 have been eliminated.
1629
1630 * RSS-FUNCTIONS.PHP RENAMED TO RSS.PHP: if you use the upgraded MagpieRSS
1631 replacement that's included with FeedWordPress, be sure to note that
1632 there are now *two* files to upload from the `OPTIONAL/wp-includes`
1633 subdirectory in order to carry out the upgrade: rss-functions.php and
1634 rss.php. **It is necessary to upload both files**, due to a change in
1635 the file naming scheme in WordPress 2.1, and it is necessary to do so
1636 whether you are using WordPress 2.1 or not. If you only upload the
1637 `rss-functions.php` file as in previous installations you will not have
1638 a working copy of MagpieRSS; the rss.php file contains the actual code.
1639
1640 * DATE BUG AFFECTING SOME PHP INSTALLATIONS RESOLVED: due to a subtle bug
1641 in parse_w3cdtf(), some installations of PHP encountered problems with
1642 FeedWordPress's attempt to date posts, which would cause some new posts
1643 on Atom feeds to be dated as if they had apppeared in 1969 or 1970
1644 (thus, effectively, never appearing on front page at all). This bug in
1645 the date handling should now be fixed.
1646
1647 * PHP <?=...?> SHORT FORM ELIMINATED: some installations of PHP do not
1648 allow the <?=...?> short form for printing PHP values, which was used
1649 extensively in the FeedWordPress interface code. Since this could cause
1650 fatal errors for users with the wrong installation of PHP, the short
1651 form has been replaced with full PHP echo statements, and is no longer
1652 used in FeedWordPress.
1653
1654 * BETTER USER INTERFACE INTEGRATION WITH WORDPRESS 2.x: Some minor changes
1655 have been made to help the FeedWordPress interface pages blend in better
1656 with the user interface when running under WordPress 2.x.
1657
1658 * GLOBAL CATEGORIES BUG RESOLVED: a bug that prevented some users from
1659 setting one or more categories to apply to syndicated posts from all
1660 feeds (using the checkbox interface under Options --> Syndication) has
1661 been resolved.
1662
1663 = 0.98 =
1664
1665 * WORDPRESS 2.0 COMPATIBILITY: This is a narrowly-targeted release to
1666 solve a major outstanding problem. FeedWordPress is now compatible with
1667 both WordPress 1.5 and WordPress 2.0. Incompatibilities that caused
1668 fatal SQL errors, and a more subtle bug with off-kilter counts of posts
1669 under a given category, have been resolved. FeedWordPress tests for
1670 database schema using the global $wp_db_version variable (if null, then
1671 we presume that we're dealing with WordPress 1.5).
1672
1673 NOTE: I have **not** fully tested FeedWordPress with WordPress 2.0.
1674 Further testing may reveal more bugs. However, you should now be able
1675 to get at least basic FeedWordPress functionality up and running.
1676
1677 * AUTHOR MATCHING: FeedWordPress tests several fields to see if it can
1678 identify the author of the post as a user already in the WordPress user
1679 database. In previous versions, it tested the user login, the nickname,
1680 and tested for "aliases" listed in the Profile (see documentation). FWP
1681 now also matches authors on the basis of e-mail address (*if* an e-mail
1682 address is present). This is particularly helpful for formats such as
1683 RSS 2.0, in which authors are primarily identified by e-mail addresses.
1684
1685 = 0.97 =
1686
1687 * INSTALLATION PROCEDURE: Some of the changes between 0.96 and 0.97
1688 require upgrades to the meta-data stored by FeedWordPress to work
1689 properly. Thus, if you are upgrading from 0.96 or earlier to 0.97, most
1690 FeedWordPress operations (including updates and template functions)
1691 WILL BE DISABLED until you run the upgrade procedure. Fortunately,
1692 running the upgrade procedure is easy: just go to either Options -->
1693 Syndication or Links --> Syndicated in the WordPress Dashboard and press
1694 the button.
1695
1696 * FEED FORMAT SUPPORT: Support has been added for the Atom 1.0 IETF
1697 standard. Several other elements are also newly supported
1698 (dcterms:created, dcterms:issued, dcterms:modified, dc:identifier,
1699 proper support for the RSS 2.0 guid element, the RSS 2.0 author element,
1700 the use of Atom author or Dublin Core dc:creator constructs at the feed
1701 level to identify the author of individual items, etc.)
1702
1703 N.B.: full support of several Atom 1.0 features, such as categories
1704 and enclosures, requires you to install the optional rss-functions.php
1705 upgrade in your wp-includes directory.
1706
1707 * BUG FIX: Running `update-feeds.php` from command line or crontab
1708 returned "I don't syndicate..." errors. It turns out that WordPress
1709 sometimes tramples on the internal PHP superglobals that I depended on
1710 to determine whether or not the script was being invoked from the
1711 command line. This has been fixed (the variables are now checked
1712 *before* WordPress can trample them). Note that `update-feeds.php` has
1713 been thoroughly overhauled anyway; see below for details.
1714
1715 * BUG FIX: Duplicate categories or author names. Fixed two bugs that could
1716 create duplicate author and/or category names when the name contained
1717 either (a) certain international characters (causing a mismatch between
1718 MySQL and PHP's handling of lowercasing text), or (b) characters that
1719 have a special meaning in regular expressions (causing MySQL errors when
1720 looking for the author or category due to regexp syntax errors). These
1721 should now be fixed thanks to careful escaping of names that go into
1722 regular expressions and careful matching of lowercasing functions
1723 (comparing results from PHP only to other results from PHP, and results
1724 from MySQL only to other results from MySQL).
1725
1726 * BUG FIX: Items dated December 31, 1969 should appear less often. The
1727 function for parsing W3C date-time format dates that ships with
1728 MagpieRSS can only correctly parse fully-specified dates with a
1729 fully-specified time, but valid W3C date-time format dates may omit the
1730 time, the day of the month, or even the month. Some feeds in the wild
1731 date their items with coarse-grained dates, so the optional
1732 `rss-functions.php` upgrade now includes a more flexible parse_w3cdtf()
1733 function that will work with both coarse-grained and fully-specified
1734 dates. (If parts of the date or the time are omitted, they are filled in
1735 with values based on the current time, so '2005-09-10' will be dated to
1736 the current time on that day; '2004' will be dated to this day and time
1737 one year ago.
1738
1739 N.B.: This fix is only available in the optional `rss-functions.php`
1740 upgrade.
1741
1742 * BUG FIX: Evil use of HTTP GET has been undone. The WordPress interface
1743 is riddled with inappropriate (non-idempotent) uses of HTTP GET queries
1744 (ordinary links that make the server do something with significant
1745 side-effects, such as deleting a post or a link from the database).
1746 FeedWordPress did some of this too, especially in places where it aped
1747 the WordPress interface (e.g. the "Delete" links in Links -->
1748 Syndicated). That's bad business, though. I've changed the interface so
1749 that all the examples of improper side-effects that I can find now
1750 require an HTTP POST to take effect. I think I got pretty much
1751 everything; if there's anything that I missed, let me know.
1752
1753 Further reading: [Sam Ruby 2005-05-06: This Stuff Matters](http://www.intertwingly.net/blog/2005/05/06/This-Stuff-Matters)
1754
1755 * BUG FIX: Categories applied by `cats` setting should no longer prevent
1756 category-based filtering from working. In FeedWordPress, you can (1)
1757 apply certain categories to all syndicated posts, or all posts from
1758 a particular feed; and (2) filter out all posts that don't match one
1759 of the categories that are already in the WordPress database (allowing
1760 for simple category-based filtering; just load up WordPress with the
1761 categories you want to accept, and then tell FeedWordPress not to create
1762 new ones). However, the way that (1) and (2) were implemented meant that
1763 you couldn't effectively use them together; once you applied a known
1764 category to all syndicated posts from a particular feed, it meant that
1765 they'd have at least one familiar category (the category or categories
1766 you were applying), and that would get all posts past the filter no
1767 matter what categories they were originally from.
1768
1769 Well, no longer. You can still apply categories to all syndicated posts
1770 (using either Syndication --> Options, or the feed-level settings under
1771 Links --> Syndicated). But these categories are not applied to the post
1772 until *after* it has already passed by the "familiar categories" filter.
1773 So now, if you want, you can do category filtering and *then* apply as
1774 many categories as you please to all and only posts that pass the filter.
1775
1776 * BUG FIX: Other minor typos and HTML gaffes were fixed along the way.
1777
1778 * PERFORMANCE: get_feed_meta() no longer hits the database for information
1779 on every call; it now caches link data in memory, so FeedWordPress only
1780 goes to the database once for each syndicated link. This may
1781 substantially improve performance if your database server resources
1782 are tight and your templates make a lot of use of custom settings from
1783 get_feed_meta().
1784
1785 * API CHANGE: Link ID numbers, rather than RSS URIs, are now used to
1786 identify the feed from which a post is syndicated when you use template
1787 functions such as get_feed_meta(). The practical upshot of this is you
1788 can switch feeds, or change the feed address for a particular syndicated
1789 site, without breaking your templates for all the posts that were
1790 syndicated from the earlier URI.
1791
1792 * API CHANGE: if you have plugins or templates that make use of the
1793 get_feed_meta() function or the $fwp_feedmeta global, note that the
1794 data formerly located under the `uri` and `name` fields is now located
1795 under the `link/uri` field and the `link/name` field, respectively. Note
1796 also that you can access the link ID number for any given feed under the
1797 global $fwp_feedmeta['link/id'] (in plugins) or
1798 get_feed_meta('link/id') (in a template in post contexts).
1799
1800 * FEATURE: the settings for individual feeds can now be edited using a
1801 humane interface (where formerly you had to tweak key-value pairs in the
1802 Link Notes section). To edit settings for a feed, pick the feed that you
1803 want under Links --> Syndicated and click the Edit link.
1804
1805 * FEATURE: The "Unsubscribe" button (formerly "Delete") in Links -->
1806 Syndicated now offers three options for unsubscribing from a feed: (1)
1807 turning off the subscription without deleting the feed data or affecting
1808 posts that were syndicated from the feed (this works by setting the Link
1809 for the feed as "invisible"); (2) deleting the feed data and all of the
1810 posts that were syndicated from the feed; or (3) deleting the feed data
1811 and *keeping* the posts that were syndicated from the feed
1812 setting the Link to "Invisible" (meaning that it will not be displayed
1813 in lists of the site links on the front page, and it won't be checked
1814 for updates; (2) deleting the Link and all of the posts that were
1815 syndicated from its feed; or (3) deleting the feed data but keeping the
1816 posts that were syndicated (which will henceforward be treated as if
1817 they were local rather than syndicated posts). (Note that (1) is usually
1818 the best option for aggregator sites, unless you want to clean up the
1819 results of an error or a test.)
1820
1821 * FEATURE / BUG FIX: If you have been receiving mysterious "I don't
1822 syndicate...", or "(local) HTTP status code was not 200", or "(local)
1823 transport error - could not open socket", or "parse error - not well
1824 formed" errors, then this update may solve your problems, and if it does
1825 *not* solve them, it will at least make the reasons for the problems
1826 easier to understand. That's because I've overhauled the way that
1827 FeedWordPress goes about updating feeds.
1828
1829 If you use the command-line PHP scripting method to run scheduled
1830 updates, then not much should change for you, except for fewer
1831 mysterious errors. If you have done updates by sending periodic HTTP
1832 requests to <http://your-blog.com/path/wp-content/update-feeds.php>,
1833 then the details have changed somewhat; mostly in such a way as to make
1834 things easier on you. See the README file or online documentation on
1835 Staying Current for the details.
1836
1837 * FEATURE: FeedWordPress now features a more sophisticated system for
1838 timed updates. Instead of polling *every* subscribed feed for updates
1839 *each* time `update-feeds.php` is run, FeedWordPress now keeps track of
1840 the last time it polled each feed, and only polls them again after a
1841 certain period of time has passed. The amount of time is normally set
1842 randomly for each feed, in a period between 30 minutes and 2 hours (so
1843 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
1844 directly by the feed, which brings us to ...
1845
1846 * FEATURE: FeedWordPress now respects the settings in the `ttl` and
1847 Syndication Module RSS elements. Feeds with these elements set will not
1848 be polled any more frequently than they indicate with these feeds unless
1849 the user manually forces FeedWordPress to poll the feed (see Links -->
1850 Syndicated --> Edit settings).
1851
1852 = 0.96 =
1853
1854 * FEATURE: support has been added for enclosures in RSS 2.0 and Atom
1855 0.6+ newsfeeds. WordPress already supports adding enclosures to an
1856 item; FeedWordPress merely gets the information on the enclosure
1857 from the feed it is syndicating and plugs that information directly
1858 into the WordPress database so that (among other things) that post
1859 will have its enclosure listed in your blog's RSS 2 newsfeed.
1860
1861 Note that enclosure support requires using the optional MagpieRSS
1862 upgrade (i.e., replacing your `wp-includes/rss-functions.php` with
1863 `OPTIONAL/wp-includes/rss-functions.php` from the FWP archive)
1864
1865 * FEATURE: for completeness's sake, there is now a feed setting,
1866 `hardcode url`, that allows you to set the URI for the front page
1867 of a contributor's website manually (that is, prevent it from being
1868 automatically updated from the feed channel link on each update). To
1869 set the URI manually, put a line like this in the Link Notes section
1870 of a feed:
1871
1872 hardcode url: yes
1873
1874 You can also instruct FeedWordPress to use hardcoded URIs by default
1875 on all feeds using Options --> Syndication
1876
1877 * FEATURE: by default, when FeedWordPress finds new syndicated posts,
1878 it (1) publishes them immediately, (2) turns comments off, and (3)
1879 turns trackback / pingback pings off. You can now alter all three
1880 default behaviors (e.g., to allow pings on syndicated posts, or to
1881 send newly-syndicated posts to the draft pile for moderation) using
1882 Options --> Syndication
1883
1884
1885 = From 0.91 to 0.95 =
1886
1887 * BUG FIX: Fixed an obscure bug in the handling of categories:
1888 categories with trailing whitespace could cause categories with
1889 duplicate names to be created. This no longer happens. While I was
1890 at it I tightened up the operation of
1891 FeedWordPress::lookup_categories() a bit in general.
1892
1893 * FEATURE DEPRECATED: the feed setting `hardcode categories` is now
1894 deprecated in favor of `unknown categories` (see below), which
1895 allows you to strip off any syndication categories not already in
1896 your database using `unknown categories: default` or `unknown
1897 categories: filter`. If you have `hardcode categories: yes` set on a
1898 feed, this will be treated as `unknown categories: default` (i.e.,
1899 no new categories will be added, but if a post doesn't match any of
1900 the categories it will be added in the default category--usually
1901 "Uncategorized" or "General").
1902
1903 * FEATURE: You can now set global defaults as to whether or not
1904 FeedWordPress will update the Link Name and Link Description
1905 settings for feeds automatically from the feed title and feed
1906 tagline. (By default, it does, as it has in past versions.) Whether
1907 this behavior is turned on or off, you can still override the
1908 default behavior using feed settings of `hardcode name: yes`,
1909 `hardcode name: no`, `hardcode description: yes`, or `hardcode
1910 description: no`.
1911
1912 * FEATURE: Users can now provide one or several "aliases" for an
1913 author, just as they can for a category. For example, to make
1914 FeedWordPress treat posts by "Joseph Cardinal Ratzinger" and "Pope
1915 Benedict XVI" as by the same author, edit the user profile for Pope
1916 Benedict XVI and add a line like this to the "User profile" field:
1917
1918 a.k.a.: Joseph Cardinal Ratzinger
1919
1920 You can add several aliases, each on a line by itself. You can also
1921 add any other text you like to the Profile without interfering with
1922 the aliases.
1923
1924 * FEATURE: Users can now choose how to handle syndicated posts that
1925 are in unfamiliar categories or by unfamiliar authors (i.e.,
1926 categories or authors whose names are not yet in the WordPress
1927 database). By default, FeedWordPress will (as before) create a new
1928 category (or new author) and use it for the current post and any
1929 future posts. This behavior can be changed, either for all feeds or
1930 for one or another particular feed.
1931
1932 There are now three different options for an unfamiliar author: (1)
1933 FeedWordPress can create a new author account and attribute the
1934 syndicated post to the new account; (2) FeedWordPress can attribute
1935 the post to an author if the author's name is familiar, and to a
1936 default author (currently, this means the Site Administrator
1937 account) if it is not; (3) FeedWordPress can drop posts by
1938 unfamiliar authors and syndicate only posts by authors who are
1939 already in the database.
1940
1941 There are, similarly, two different options for an unfamiliar
1942 category: (1) FeedWordPress can create new categories and place the
1943 syndicated post in them; (2) FeedWordPress can drop the unfamiliar
1944 categories and place syndicated posts only in categories that it is
1945 already familiar with. In addition, FeedWordPress 0.95 lets you
1946 choose whether posts that are in *no* familiar categories should be
1947 syndicated (and placed in the default category for the blog) or
1948 simply dropped.
1949
1950 You can set the default behavior for both authors and categories
1951 using the settings in Options --> Syndication. You can also set
1952 different behavior for specific feeds by adding the `unfamiliar
1953 author` and / or `unfamiliar categories` settings to the Link Notes
1954 section of a feed:
1955
1956 unfamiliar author: (create|default|filter)
1957 unfamiliar categories: (create|default|filter)
1958
1959 A setting of `unfamiliar author: create` will make FeedWordPress
1960 create new authors to match unfamiliar author names *for this feed
1961 alone*. A setting of `unfamiliar author: default` will make it
1962 assign posts from unfamiliar authors to the default user account. A
1963 setting of `unfamiliar author: filter` will cause all posts (from
1964 this feed alone) to be dropped unless they are by an author already
1965 listed in the database. Similiarly, `unfamiliar categories: create`
1966 will make FeedWordPress create new categories to match unfamiliar
1967 category names *for this feed alone*; `unfamiliar categories:
1968 default` will cause it to drop any unfamiliar category names; and
1969 `unfamiliar categories: filter` will cause it to *both* drop any
1970 unfamiliar category names *and* to only syndicate posts that are
1971 placed in one or more familiar categories.
1972
1973 These two new features allow users to do some coarse-grained
1974 filtering without having to write a PHP filter. Specifically, they
1975 offer an easy way for you to filter feeds by category or by author.
1976 Suppose, for example, that you only wanted to syndicate posts that
1977 your contributors place in the "Llamas" category. You could do so by
1978 setting up your installation of WordPress so that the only category
1979 in the database is "Llamas," and then use Options --> Syndication to
1980 set "Unfamiliar categories" to "don't create new categories and
1981 don't syndicate posts unless they match at least one familiar
1982 category". Now, when you update, only posts in the "Llamas" category
1983 will be syndicated by FeedWordPress.
1984
1985 Similarly, if you wanted to filter one particular feed so that only
1986 posts by (for example) the author "Earl J. Llama" were syndicated to
1987 your site, you could do so by creating a user account for Earl J.
1988 Llama, then adding the following line to the settings for the feed
1989 in Link Notes:
1990
1991 unfamiliar author: filter
1992
1993 This will cause any posts from this feed that are not authored by
1994 Earl J. Llama to be discarded, and only the posts by Earl J. Llama
1995 will be syndicated. (If the setting is used on one specific feed, it
1996 will not affect how posts from other feeds are syndicated.)
1997
1998 == License ==
1999
2000 The FeedWordPress plugin is copyright © 2005-2010 by Charles Johnson. It uses
2001 code derived or translated from:
2002
2003 - [wp-rss-aggregate.php][] by [Kellan Elliot-McCrea](kellan@protest.net)
2004 - [SimplePie][] feed parser by Ryan Parman, Geoffrey Sneddon, Ryan McCue, et al.
2005 - [MagpieRSS][] feed parser by [Kellan Elliot-McCrea](kellan@protest.net)
2006 - [Ultra-Liberal Feed Finder][] by [Mark Pilgrim](mark@diveintomark.org)
2007 - [WordPress Blog Tool and Publishing Platform](http://wordpress.org/)
2008
2009 according to the terms of the [GNU General Public License][].
2010
2011 This program is free software; you can redistribute it and/or modify it under
2012 the terms of the [GNU General Public License][] as published by the Free
2013 Software Foundation; either version 2 of the License, or (at your option) any
2014 later version.
2015
2016 This program is distributed in the hope that it will be useful, but WITHOUT ANY
2017 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
2018 PARTICULAR PURPOSE. See the GNU General Public License for more details.
2019
2020 [wp-rss-aggregate.php]: http://laughingmeme.org/archives/002203.html
2021 [SimplePie]: http://www.simplepie.org/
2022 [MagpieRSS]: http://magpierss.sourceforge.net/
2023 [Ultra-Liberal Feed Finder]: http://diveintomark.org/projects/feed_finder/
2024 [GNU General Public License]: http://www.gnu.org/copyleft/gpl.html
2025
2026