PluginProbe
FeedWordPress / 2009.0618
FeedWordPress v2009.0618
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 / ChangeLog.text

ChangeLog.text in FeedWordPress 2009.0618, at ChangeLog.text

997 lines 55.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 FeedWordPress Change Log
2 ========================
3 Changes from 2009.0613 to 2009.0618
4 -----------------------------------
5 * BUGFIX: MYSTERY ERRORS WITH WITH WP_Http_Fsockopen HTTP TRANSPORT
6 ELIMINATED: Thanks to a combination of a subtle bug in FeedWordPress,
7 and changes to the HTTP transport code in WordPress, a number of users
8 encountered an error in which any time they attempted to add a new feed
9 through the FeedFinder interface, FeedWordPress would fail and display
10 an HTTP request failure diagnostic message. The subtle bug has been
11 fixed, and with it, most of these errors should now be eliminated.
12
13 Be sure to upgrade your MagpieRSS to the most recent MagpieRSS version
14 after you have insalled FeedWordPress 2009.0618, or this bug fix will
15 not take effect.
16
17
18 Changes from 2009.0612 to 2009.0613
19 -----------------------------------
20 * INTERFACE/BUGFIX: WORDPRESS 2.8 CATEGORY BOX FIX. Thanks to a subtle
21 change in class names between the WordPress 2.7 and 2.8 stylesheets,
22 category boxes in the FeedWordPress settings interface tended to overflow
23 and have a lot of messy-looking overlapping text under WordPress 2.8.
24 This has now been fixed.
25
26 * FeedFinder FAILURE DIAGNOSTICS: When FWP's FeedFinder fails to find any
27 feeds at a given URL (for example, when you are trying to add a
28 subscription through the administrative interface and you run into an
29 error message), FeedWordPress now provides more diagnostic information
30 for the reasons behind the failure. If that helps you, great; if not,
31 it should help me respond more intelligently to your support request..
32
33 Changes from 2008.1214 to 2009.0612
34 -----------------------------------
35 * WORDPRESS 2.8 COMPATIBILITY: FeedWordPress 2009.0612 has been tested for
36 compatibility with the recent version 2.8 release of WordPress.
37
38 * INTERFACE RESTRUCTURING: In order to avoid settings posts from becoming
39 too crowded, and to modularize and better organize the user interface,
40 new "Posts" and "Categories & Tags" subpages have been created under the
41 "Syndication" menu. "Posts" controls settings for individal syndicated
42 posts (such as publication status, comment and ping status, whether or
43 not to use the original location of the post as the permalink, whether
44 or not to expose posts to formatting filters, and so on). "Categories &
45 Tags" controls settings for assigning new syndicated posts to categories
46 and tags, such as categories or tags to apply to all syndicated posts,
47 and how to handle categories that do not yet exist in the WordPress
48 database. These subpages, like the Authors subpage, handle settings for
49 the global default level and for individual syndicated feeds.
50
51 Corresponding to these new subpages, the old Syndication Settings and
52 Feed Settings subpages have been cleaned up and simplified, and now only
53 link to the appropriate subpages for options that can be set in the
54 Posts, Authors, or Categories & Tags subpages.
55
56 * FEATURE: ADD CUSTOM SETTINGS TO EACH SYNDICATED POST: FeedWordPress has
57 long had an interface for creating custom settings for each syndicated
58 *feed* which could be retrieved in templates using the `get_feed_meta()`
59 template function. But it had no feature for adding custom fields to
60 each individual syndicated *post*. In response to requests from users, I
61 have added the ability to apply custom fields to each individual
62 syndicated post, using the new Syndication --> Posts subpage. You can
63 set up custom fields to be applied to every syndicated post, or custom
64 fields to be applied to syndicated posts from a particular feed.
65
66 * FEATURE: MAGPIERSS VERSION CHECK AND UPGRADE: FeedWordPress will attempt
67 to determine whether or not you are using the upgraded version of
68 MagpieRSS that comes packaged with FeedWordPress. If not, it will throw
69 an error on admin pages, and, if you are a site administrator, it will
70 give you the option to ignore the error message, or to attempt an
71 automatic upgrade (using a native file copy). If the file copy fails,
72 FeedWordPress will offer some guidance on how to perform the upgrade
73 manually.
74
75 * BLANK POSTS PROBLEM NO LONGER OCCURS WITH OLD & BUSTED MAGPIERSS: Due
76 to the fact that I relied on a content normalization that occurs in my
77 upgraded version of MagpieRSS, but not in the old & busted version of
78 MagpieRSS that ships with WordPress, until this version, if you tried to
79 syndicate an Atom feed without having performed the (*strongly
80 recommended*) MagpieRSS upgrade, all of the posts would come up with
81 completely blank contents. That's not because MagpieRSS couldn't read
82 the data, but rather because the new Magpie version puts that data in a
83 location where the old version doesn't, and I was only looking in that
84 newer location. Now it checks for both, meaning that posts will continue
85 to display their contents even if you don't upgrade MagpieRSS. (But you
86 **really should** upgrade it, anyway.)
87
88 * BUGFIX: RELATIVE URI RESOLUTION FOR POST CONTENT RESTORED. Some time
89 back, I added support for resolving relative URIs against xml:base on
90 feeds that support it to the MagpieRSS upgrade in FeedWordPress. Then I
91 took out code that did the same thing from the main FeedWordPress code.
92 Of course, the problem is that some people, even though it is clearly
93 stupid or evil to do so, still include relative URIs for images or links
94 in posts on feed formats that do *not* adequately support xml:base
95 (notably, RSS 2.0 feeds). In response to a user request, I have added
96 this functionality back in, so that MagpieRSS will resolve any relative
97 URIs that it knows how to resolve using xml:base, and then FeedWordPress
98 will attempt to resolve any relative URIs that are left over afterwards.
99
100 * BUGFIX: INTERFACE OPTION FOR SETTING SYNDICATED POST PUBLICATION STATUS
101 ON A FEED-BY-FEED BASIS HAS BEEN RESTORED: Due to a version-checking
102 bug, users of WordPress 2.7.x lost an option from the "Edit a syndicated
103 feed" interface which allowed them to determine whether newly syndicated
104 posts should be published immediately, held as "Pending Review," saved
105 as drafts, or saved as private posts. (The option to change this
106 setting globally remained in place, but users could no longer set it on
107 a feed-by-feed basis.) The version-checking bug has been fixed, and the
108 option has been restored.
109
110 * BUGFIX: "ARE YOU SURE?" FATAL ERROR ELIMINATED AND SECURITY IMPROVED:
111 Under certain circumstances (for example, when users have configured
112 their browser or proxy not to send HTTP Referer headers, for privacy or
113 other reasons), many features in the FeedWordPress administrative
114 interface (such as adding new feeds or changing settings) would hit a
115 fatal error, displaying only a cryptic message reading "Are you sure?"
116 and a blank page following it. This problem has been eliminated by
117 taking advantage of WordPress's nonce functions, which allow the
118 security check which ran into this error to work properly even without
119 receiving an HTTP Referer header. (N.B.: WordPress's nonce functions
120 were first introduced in WordPress 2.0.3. If you're using FeedWordPress
121 with an older version of WordPress, there's no fix for this problem:
122 you'll just need to turn Referer headers back on. Sorry.)
123
124 * BUGFIX: MANUALLY-ALTERED POST STATUS, COMMENT STATUS, AND PING STATUS NO
125 LONGER REVERTED BY POST UPDATES: If you manually altered the post status,
126 comment status, or ping status of a syndicated post from what it was set
127 to when first syndicated -- for example, if you had a feed that was set
128 to bring in new posts as "Pending Review," and you then marked some of
129 the pending posts as "Published" and others as "Unpublished" -- then
130 in previous versions of FeedWordPress, these manual changes to the
131 status would be lost -- so that, for example, your Published or Unpublished
132 articles would revert to Pending Review -- if the source feed made any
133 upates to the item. This could make the Pending Review feature both
134 unreliable and also extremely frustrating to work with. The good news is
135 that this bug has since been fixed: if you manually update the status
136 of a post, it will no longer be reverted if or when the post is updated.
137
138 * BUGFIX: OCCASIONAL FATAL ERROR ON UPDATE ELIMINATED: Under certain
139 limited conditions (specifically, when both the title and the content of
140 a post to be updated are empty), an attempt to update the post would
141 result in a fatal error. This has been fixed.
142
143 * INTERFACE: "CONFIGURE SETTINGS" CONVENIENCE LINK ADDED TO CONFIRMATION
144 MESSAGE WHEN A NEW FEED IS ADDED: When you add a new subscription to
145 FeedWordPress, the message box that appears to confirm it now includes a
146 handy link to the feed's settings subpage, so that you can quickly set
147 up any special settings you may want to set up for the new feed, without
148 having to hunt through the list of all your other subscriptions to pick
149 out the new one.
150
151 * INTERFACE: SIMPLIFYING AND CLARIFYING AUTOMATIC UPDATES SETTINGS. I have
152 removed an interval setting for the cronless automatic updates which has
153 confused many FeedWordPress users. In past versions of FWP, when you
154 turned on automatic updates, you would be presented with a time interval
155 setting which controlled how often FeedWordPress would check for feeds
156 ready to be polled for updates. (That is, it DID NOT control how often
157 feeds *would be polled*; it controlled how often FeedWordPress would
158 *check* for feeds that *had become ready to poll*. The schedule on which
159 feeds became ready for polling was still controlled either by requests
160 encoded in elements within the feed itself, or else according to an
161 internal calculation within FeedWordPress, averaging out to about 1 hour,
162 if the feed did not include any scheduling request elements.) Since many
163 users very often (and understandably) confused the purpose of this
164 setting, and since the setting is for a feature that's actually very
165 unlikely to require any manual control by the user, I have removed the
166 setting; FeedWordPress now simply uses the default value of checking for
167 feeds to poll every 10 minutes.
168
169 * FEEDFINDER PERFORMANCE IMPROVEMENT: FeedWordPress's FeedFinder class
170 now uses `array_unique()` to make sure that it doesn't waste time
171 repeatedly iterating over and polling the same URI. Props to Camilo
172 (<http://projects.radgeek.com/2008/12/14/feedwordpress-20081214/#comment-20090122160414>).
173
174 Changes from 2008.1105 to 2008.1214
175 -----------------------------------
176
177 * WORDPRESS 2.7 COMPATIBILITY: FeedWordPress has been tested for
178 compatibility with the newly released WordPress 2.7. WordPress 2.7 has
179 deprecated the Snoopy library for HTTP requests, which caused a fatal
180 error for users who had not installed the MagpieRSS upgrade (or whose
181 installation of the MagpieRSS upgrade was overwritten by a recent update
182 of WordPress). FeedWordPress now handles things gracefully when Snoopy
183 is not immediately available.
184
185 * INTERFACE SPIFFED UP: Interface elements have been updated so that
186 FeedWordPress's management interface fits in more naturally with the
187 WordPress 2.7 interface (including a new logo and a number of small
188 interface tweaks).
189
190 * BUG WITH TAGS FOR SYNDICATED ARTICLES FIXED: Several users encountered a
191 bug with the option to add tags to all syndicated posts under
192 Syndication --> Settings -- if you told FeedWordPress to add more than
193 one tag to all syndicated posts, instead of doing so correctly, it would
194 add a *single* tag instead, whose name was composed of the names of all
195 the tags you asked it to add. This bug was the result of nothing more
196 dignified than a typographical error on my part. It has now been fixed.
197
198 * MORE INFORMATION AVAILABLE WHEN FEEDWORDPRESS CAN'T FIND A FEED: When
199 you enter a URL for a new syndication source, FeedWordPress uses a
200 simple feed-finding algorithm (originally based on Mark Pilgrim's
201 Universal Feed Finder) to try to determine whether the URL is the URL
202 for a feed, or, if the URL points to an ordinary website rather than to
203 a feed, whether there is a feed for that website. All well and good, but
204 if FeedWordPress failed to find a feed, for whatever reason, it would
205 typically return nothing more than a nasty little note to the effect of
206 "no feed found," without any explanation of what went wrong.
207 FeedWordPress now keeps track of error conditions from the HTTP
208 requests that it uses in the course of looking for the feed, and so may
209 be able to give you a bit more information about the nature of the
210 problem if something goes wrong.
211
212
213 Changes from 2008.1101 to 2008.1105
214 -----------------------------------
215
216 * INTERFACE RESTRUCTURING AND SYNDICATION --> AUTHORS PAGE: As a first
217 step towards modularizing and better organizing the user interface, a
218 new "Authors" subpage has been created under the Syndication menu, which
219 controls settings for syndicated authors, both at the global default
220 level and at level of individual syndicated feeds.
221
222 * BUG RELATED TO THE ATTRIBUTION OF POSTS TO THE WRONG AUTHOR FIXED: Some
223 users encountered an issue in which posts by different authors on
224 different blogs -- especially blogs generated by Blogger -- were
225 mistakenly attributed to a single author. The problem was caused by the
226 way in which FeedWordPress matches syndicated authors to user accounts
227 in the WordPress database: normally, if two feeds each list an author
228 with the same e-mail address, they are counted as being the same person.
229 Normally this works well, but it creates an issue in cases where
230 blogging software assigns a single anonymous e-mail address to users who
231 do not want their real e-mail address published. This is, for example,
232 what Blogger does (by giving all users a default e-mail address of
233 <noreply@blogger.com> if they don't want their own e-mail address
234 listed). FeedWordPress now allows the user to correct for this problem
235 with a couple of new settings under **Syndication --> Authors**, which
236 allow users to turn off e-mail based author matching for particular
237 addresses, or, if desired, to turn it off entirely. By default, e-mail
238 based author matching is still turned on, but disabled for a list of
239 known generic e-mail addresses. Right now, the "list" consists entirely
240 of <noreply@blogger.com>; if you know other addresses that should be
241 added, please [contact me](http://radgeek.com/contact) to let me know.
242
243 Please note that if you have already encountered this issue on your
244 blog, upgrading FeedWordPress will prevent it from re-occurring in the
245 future, but you still need to do two other things to fix the existing
246 problem on your blog.
247
248 First, for each feed where posts have been mis-attributed, you need to
249 change the existing author mapping rules to re-map a a syndicated
250 author's name to the proper target account. Go to **Syndication -->
251 Authors**, select the feed you want to change from the drop-down list,
252 and then change the settings under the "Syndicated Authors" section.
253 (You will probably need to select "will be assigned to a new user..." to
254 create a new user account with the appropriate name.)
255
256 Second, for each feed where posts have been mis-attributed, you need to
257 re-assign already-syndicated posts that were mis-attributed to the
258 correct author. You can do that from **Syndication --> Authors** by
259 using the author re-assignment feature, described below.
260
261 * AUTHOR RE-ASSIGNMENT FOR A PARTICULAR FEED: The author settings page
262 for each syndicated feed, under **Syndication --> Authors**, now
263 includes an section titled "Fixing mis-matched authors," which provides
264 an interface for re-assigning or deleting all posts attributed to a
265 particular author on a particular feed.
266
267 * SUPPORT FOR `<atom:source>` ELEMENT IN SYNDICATED FEEDS: Some feeds
268 (for example, those produced by FeedWordPress) aggregate content from
269 several different sources, and include information about the original
270 source of the post in an `<atom:source>` element. A new setting under
271 **Syndication --> Options** allows you to control what FeedWordPress
272 will report as the source of posts syndicated from aggregator feeds in
273 your templates and feeds: you can have FeedWordPress report that the
274 source of a post is the aggregator feed itself, or you can have it
275 report that the source of a post is the original source that the
276 aggregator originally syndicated the post from.
277
278 By default, FeedWordPress will report the aggregator, not the original
279 source, as the source of a syndicated item.
280
281 * LOAD BALANCING AND TIME LIMITING FEATURES FOR UPDATES: Some users have
282 encountered issues due to running up against PHP execution time limits
283 during the process of updating large syndicated feeds, or a very large
284 set of syndicated feeds. FeedWordPress now has a feature that allows you
285 to limit the total amount of time spent updating a feed, through the
286 "Time limit on updates" setting under **Syndication --> Options**. By
287 turning on this setting and adjusting the time limit to a low enough
288 figure to avoid your PHP installation's time-out setting. (PHP execution
289 time limits are usually in the vicinity of 30 seconds, so an update
290 time limit of 25 seconds or so should provide plenty of time for updates
291 while allowing a cushion of time for other, non-update-related functions
292 to do their work.)
293
294 If feed updates are interrupted by the time limit, FeedWordPress uses
295 some simple load balancing features to make sure that updates to other
296 feeds will not be blocked by the time-hogging feed, and will also make
297 sure that when the interrupted update is resumed, FeedWordPress will
298 skip ahead to resume processing items at the point at which it was
299 interrupted last time, so that posts further down in the feed will
300 eventually get processed, and not get blocked by the amount of time it
301 takes to process the items higher up in the feed.
302
303 * `guid` INDEX CREATION BUTTON: FeedWordPress frequently issues queries on
304 the `guid` column of the WordPress posts database (since it uses post
305 guid URIs to keep track of which posts it has syndicated). In very large
306 FeedWordPress installations, you can often significantly improve
307 performance by creating a database index on the `guid` column, but
308 normally you would need to poke around with MySQL or a tool like
309 phpMyAdmin to do this. FeedWordPress can now save you the trouble: to
310 create an index on the `guid` column, just go to
311 **Syndication --> Options**, and mash the button at the bottom of the
312 "Back End" section.
313
314 Changes from 2008.1030 to 2008.1101
315 -----------------------------------
316
317 * INTERFACE BUG THAT PREVENTED ADDING NEW SITES FIXED: The UI reforms in
318 FWP 2008.1030 unintentionally introduced a bug that prevents clean
319 installations of FeedWordPress from providing an input box for adding
320 new feeds to the list of syndicated feeds. This bug has been fixed.
321
322 Changes from 0.993 to 2008.1030
323 -------------------------------
324
325 * WORDPRESS 2.6 COMPATIBILITY: FeedWordPress should now be compatible with
326 WordPress 2.6, and should work more or less seamlessly with the new post
327 revision system. A bug which caused multiple new revisions to be created
328 for posts on certain feeds, regardless of whether or not the item had
329 been updated, has been fixed.
330
331 * INTERFACE IMPROVEMENTS: The user interface has been substantially
332 restyled to fit in better with the visual style of WordPress 2.5 and
333 2.6.
334
335 * YOUTUBE BUG FIXED: POSTS SYNDICATED THROUGH AN AUTOMATIC UPDATE ARE NO
336 LONGER STRIPPED OF `<OBJECT>` TAGS AND CERTAIN OTHER HTML ELEMENTS: Due
337 to the way that some versions of WordPress process posts that are
338 inserted into the database when no user is logged in, many users
339 experienced an issue where YouTube videos and other content using the
340 HTML `<object>` tag would be stripped out of posts that were syndicated
341 during an automatic update. (Posts that were syndicated through manual
342 updates from within the WordPress Dashboard were not affected, because
343 the issue does not arise when an update is executed under a logged-in
344 administrator's credentials.) This bug has now been fixed; YouTube
345 videos and other content using `<object>` tags should now appear
346 properly in syndicated posts, regardless of the way in which the post
347 was syndicated.
348
349 * AJAX BUGS FIXED: Bugs which blocked the normal operation of WordPress
350 2.5's AJAX interface elements when FeedWordPress was activated have been
351 fixed.
352
353 * TAG SUPPORT: A couple of features have been introduced to take advantage
354 of the tagging features in WordPress 2.3.x, 2.5.x, and 2.6.x. Now, when
355 unfamiliar categories are encountered for posts on a feed, you can
356 choose for FeedWordPress (1) to drop the category; (2) to drop the
357 category and to filter out any post that does not match at least one
358 familiar category; (3) to create a new category with that name, or,
359 now, you can also have FeedWordPress (4) create a new *tag* with that
360 name. This option can be set site-wide under Syndication --> Options,
361 or it can be set on a feed-by-feed basis in a feed's Edit screen.
362
363 In addition, you can now set particular tags to apply to all incoming
364 syndicated posts, under Syndication --> Options, or you can set tags
365 to apply to all incoming syndicated posts from a particular feed in that
366 feed's Edit screen.
367
368 * FORMATTING FILTERS: There is a new option available under Syndication ->
369 Options which allows users to choose whether or not to expose syndicated
370 posts to being altered by formatting filters. By default, FeedWordPress
371 has always protected syndicated posts (which are already in display-ready
372 HTML when they are syndicated) from being reformatted by formatting
373 filters. However, this approach means that certain plugins which depend
374 on formatting filters (for example, to add "Share This" bars or relevant
375 links to the end of a post) are blocked from working on any syndicated
376 posts. If you want to use one of these plugins together with
377 FeedWordPress, you can now do so by changing the "Formatting Filters"
378 setting from "Protect" to "Expose."
379
380 * `<atom:source>` ELEMENTS NOW INCLUDED IN ATOM FEED: Atom 1.0 provides
381 a standard method for aggregators to indicate information about the original source of
382 a syndicated post, using the `<atom:source>` element. FeedWordPress now
383 introduces standard `<atom:source>` elements including the title, homepage, and
384 feed URI of the source from which a syndicated post was syndicated. Cf.
385 <http://www.atomenabled.org/developers/syndication/atom-format-spec.php#element.source>
386
387 * MODULARIZATION OF CODE: The code for different elements of FeedWordPress
388 has been broken out into several modules for easier inspection,
389 documentation, and maintenance of the code.
390
391 * VERSIONING SCHEME CHANGED: FeedWordPress's feature set has proven stable
392 enough that it can now be removed from beta status; a good thing, since
393 I was very quickly running out of version numbers to use. New releases
394 of FeedWordPress will have version numbers based on the date of their
395 release.
396
397 Changes from 0.992 to 0.993
398 ---------------------------
399
400 * WORDPRESS 2.5.1 COMPATIBILITY: FeedWordPress should now be compatible
401 with WordPress 2.5.1.
402
403 * WORDPRESS 2.5 INTERFACE IMPROVEMENTS: FeedWordPress's Dashboard
404 interface has undergone several cosmetic changes that should help it
405 integrate better with the WordPress Dashboard interface in WordPress
406 version 2.5.x.
407
408 * SYNDICATED POSTS CAN BE MARKED AS "PENDING REVIEW": WordPress 2.3 users
409 can now take advantage of WordPress's new "Pending Review" features for
410 incoming syndicated posts. Posts marked as "Pending Review" are not
411 published immediately, but are marked as ready to be reviewed by an
412 Administrator or Editor, who can then choose to publish the post or
413 hold it back. If you want to review syndicated posts from a particular
414 feed, or from all feeds, before they are posted, then use
415 Syndication --> Syndicated Sites --> Edit or Syndication --> Options to
416 change the settings for handling new posts.
417
418 * AWARE OF NEW URI FOR del.icio.us FEEDS: Previous releases of
419 FeedWordPress already automatically split del.icio.us tags up
420 appropriately appropriately when generating categories. (del.icio.us
421 feeds smoosh all the tags into a single `<dc:subject>` element,
422 separated by spaces; FeedWordPress un-smooshes them into multiple
423 categories by separating them at whitespace.) Unfortunately, del.icio.us
424 recently broke the existing behavior by changing host names for their
425 feeds from del.icio.us to feeds.delicious.com. Version 0.993 accounts
426 for the new host name and un-breaks the tag splitting.
427
428 Changes from 0.991 to 0.992
429 ---------------------------
430 * AUTHOR RE-MAPPING: FeedWordPress now offers considerable control over
431 how author names on a feed are translated into usernames within the
432 WordPress database. When a post by an unrecognized author comes in,
433 Administrators can now specify any username as the default username to
434 assign the post to by setting the option in Syndication --> Options
435 (formerly FeedWordPress only allowed you to assign such posts to user
436 #1, the site administrator). Administrators can also create re-mapping
437 rules for particular feeds (under Syndication --> Syndicated Sites -->
438 Edit), so that (for example) any posts attributed to "Administrator"
439 on the feed <http://praxeology.net/blog/feed/> will be assigned to
440 a user named "Roderick T. Long," rather than a user named
441 "Administrator." These settings also allow administrators to filter out
442 posts by particular users, and to control what will happen when
443 FeedWordPress encounters a post by an unrecognized user on that
444 particular feed.
445
446 * BUG RELATED TO URIS CONTAINING AMPERSAND CHARACTERS FIXED: A bug in
447 WordPress 2.x's handling of URIs in Blogroll links created problems for
448 updating any feeds whose URIs included an ampersand character, such as
449 Google News RSS feeds and other feeds that have multiple parameters
450 passed through HTTP GET. If you experienced this bug, the most likely
451 effect was that FeedWordPress simply would not import new posts from a
452 feed when instructred to do so, returning a "0 new posts" response. In
453 other cases, it might lead to unpredictable results from feed updates,
454 such as importing posts which were not contained in the feed being
455 syndicated, but which did appear elsewhere on the same website. This bug
456 has, hopefully, been resolved, by correcting for the bug in WordPress.
457
458 Changes from 0.99 to 0.991
459 --------------------------
460 * WORDPRESS MU COMPATIBILITY: FeedWordPress should now be compatible with
461 recent releases of WordPress MU. Once FeedWordPress is made available
462 as a plugin, each individual blog can choose to activate FeedWordPress
463 and syndicate content from its own set of contributors.
464
465 * DISPLAY OF MAGPIE WARNINGS: A number of MagpieRSS warnings or error
466 messages that were displayed when performing an automatic update are
467 no longer displayed, unless debugging parameters have been explicitly
468 enabled.
469
470 * BUG RELATED TO INTERNATIONAL CHARACTERS IN AUTHOR NAMES FIXED: Due to a
471 subtle incompatability between the way that FeedWordPress generated new
472 user information, and the way that WordPress 2.0 and later added new
473 authors to the database, FeedWordPress might end up creating duplicate
474 authors, or throwing a critical error message, when it encountered
475 authors whose names included international characters. This
476 incompatability has now been fixed; hopefully, authors with
477 international characters in their names should now be handled properly.
478
479 * `<media:content>` BUG IN MAGPIERSS FIXED: A bug in MagpieRSS's handling
480 of namespaced elements has been fixed. Among other things, this bug
481 caused items containing a Yahoo MediaRSS `<media:content>` element (such
482 as many of the feeds produced by wordpress.com) to be represented
483 incorrectly, with only a capital "A" where the content of the post
484 should have been. Feeds containing `<media:content>` elements should now
485 be syndicated correctly.
486
487 * update_feedwordpress PARAMETER: You can now use an HTTP GET parameter
488 (`update_feedwordpress=1`) to request that FeedWordPress poll its feeds
489 for updates. When used together with a crontab or other means of
490 scheduling tasks, this means that you can keep your blog automatically
491 updated on a regular schedule, even if you do not choose to use the
492 cron-less automatic updates option.
493
494 * Some minor interface-related bugs were also fixed.
495
496
497 Changes from 0.981 to 0.99
498 --------------------------
499 Version 0.99 adds several significant new features, fixes some bugs, and
500 provides compatability with WordPress 2.2.x and 2.3.x.
501
502 * WORDPRESS 2.2 AND 2.3 COMPATIBILITY: FeedWordPress should now be
503 compatible with WordPress version 2.2 and the upcoming WordPress
504 version 2.3. In particular, it has been tested extensively against
505 WordPress 2.2.3 and WordPress 2.3 Release Candidate 1.
506
507 * AUTOMATIC UPDATES WITHOUT CRON: FeedWordPress now allows you to
508 automatically schedule checks for new posts without using external task
509 scheduling tools such as cron. In order to enable automatic updates, go
510 to **Syndication --> Options** and set "Check for new posts" to
511 "automatically." For details, see "Automatic Feed Updates" in
512 README.text.
513
514 An important side-effect of the changes to the update system is that if
515 you were previously using the cron job and the `update-feeds.php` script
516 to schedule updates, you need to change your cron set-up. The old
517 `update-feeds.php` script no longer exists. Instead, if you wish to use
518 a cron job to guarantee updates on a particular schedule, you should
519 have the cron job fetch the front page of your blog (for example, by
520 using `curl http://www.zyx.com/blog/ > /dev/null`) instead of activating
521 the `update-feeds.php` script. If automatic updates have been enabled,
522 fetching the front page will automatically trigger the update process.
523
524 * INTERFACE REORGANIZATION: All FeedWordPress functions are now located
525 under a top-level "Syndication" menu in the WordPress Dashboard. To
526 manage the list of syndicated sites, manually check for new posts on
527 one or more feeds, or syndicate a new site, you should use the main page
528 under **Syndication**. To change global settings for FeedWordPress,
529 you should use **Syndication --> Options**.
530
531 * FILE STRUCTURE REORGANIZATION: Due to a combination of changing styles
532 for FeedWordPress plugins and lingering bugs in the FeedWordPress admin
533 menu code, the code for FeedWordPress is now contained in two different
534 PHP files, which should be installed together in a subdirectory of your
535 plugins directory named `feedwordpress`. (See README.text for
536 installation and upgrade instructions relating to the change.)
537
538 * MULTIPLE CATEGORIES SETTING: Some feeds use non-standard methods to
539 indicate multiple categories within a single category element. (The most
540 popular site to do this is del.icio.us, which separates tags with a
541 space.) FeedWordPress now allows you to set an optional setting, for any
542 feed which does this, indicating the character or characters used to
543 divide multiple categories, using a Perl-compatible regular expression.
544 (In the case of del.icio.us feeds, FeedWordPress will automatically use
545 \s for the pattern without your having to do any further configuration.)
546 To turn this setting on, simply use the "Edit" link for the feed that
547 you want to turn it on for.
548
549 * REGULAR EXPRESSION BUG FIXED: Eliminated a minor bug in the regular
550 expressions for e-mail addresses (used in parsing RSS `author`
551 elements), which could produce unsightly error messages for some users
552 parsing RSS 2.0 feeds.
553
554 * DATE / UPDATE BUG FIXED: A bug in date handling was eliminated that may
555 have caused problems if any of (1) WordPress, or (2) PHP, or (3) your
556 web server, or (4) your MySQL server, has been set to use a different
557 time zone from the one that any of the others is set to use. If
558 FeedWordPress has not been properly updating updated posts, or has been
559 updating posts when there shouldn't be any changes for the update, this
560 release may solve that problem.
561
562 * GOOGLE READER BUGS FIXED: A couple of bugs that made it difficult for
563 FeedWordPress to interact with Google Reader public feeds have been
564 fixed. Firstly, if you encountered an error message reading "There was a
565 problem adding the newsfeed. [SQL: ]" when you tried to add the feed,
566 the cause of this error has been fixed. Secondly, if you succeeded in
567 getting FeedWordPress to check a Google Reader feed, only to find that
568 the title of posts had junk squashed on to the end of them, that bug
569 has been fixed too. To fix this bug, you must install the newest version
570 of the optional MagpieRSS upgrade.
571
572 * FILTER PARAMETERS: Due to an old, old bug in WordPress 1.5.0 (which was
573 what was available back when I first wrote the filter interface),
574 FeedWordPress has traditionally only passed one parameter to
575 syndicated_item and syndicated_post filters functions -- an array
576 containing either the Magpie representation of a syndicated item from
577 the feed, or the database representation of a post about to be inserted
578 into the WordPress database. If you needed information about the feed
579 that the item came from, this was accessible only through a pair of
580 global variables, $fwp_channel and $fwp_feedmeta.
581
582 Since it's been a pretty long time since WordPress 1.5.0 was in
583 widespread usage, I have gone ahead and added an optional second
584 parameter to the invocation of the syndicated_item and syndicated_post
585 filters. If you have written a filter for FeedWordPress that uses either
586 of these hooks, you can now register that filter to accept 2 parameters.
587 If you do so, the second parameter will be a SyndicatedPost object,
588 which, among other things, allows you to access information about the
589 feed from which an item is syndicated using the $post->feed and the
590 $post->feedmeta elements (where $post is the name of the second
591 parameter).
592
593 NOTE THAT THE OLD GLOBAL VARIABLES ARE STILL AVAILABLE, for the time
594 being at least, so existing filters will not break with the upgrade.
595 They should be considered deprecated, however, and may be eliminated in
596 the future.
597
598 * FILTER CHANGE / BUGFIX: the array that is passed as the first argument
599 syndicated_post filters no longer is no longer backslash-escaped for
600 MySQL when filters are called. This was originally a bug, or an
601 oversight; the contents of the array should only be escaped for the
602 database *after* they have gone through all filters. IF YOU HAVE WRITTEN
603 ANY syndicated_post FILTERS THAT PRESUME THE OLD BEHAVIOR OF PASSING IN
604 STRINGS THAT ARE ALREADY BACKSLASH-ESCAPED, UPDATE YOUR FILTERS
605 ACCORDINGLY.
606
607 * OTHER MINOR BUGFIXES AND INTERNAL CHANGES: The internal architecture of
608 FeedWordPress has been significantly changed to make the code more
609 modular and clean; hopefully this should help reduce the number of
610 compatibility updates that are needed, and make them easier and quicker
611 when they are needed.
612
613 Changes from 0.98 to 0.981
614 --------------------------
615 Version 0.981 is a narrowly targeted bugfix and compatibility release, whose
616 main purpose is to resolve a major outstanding problem: the incompatibility
617 between version 0.98 of WordPress and the recently released WordPress 2.1.
618
619 * WORDPRESS 2.1 COMPATIBILITY: FeedWordPress is now compatible with
620 WordPress 2.1, as well as retaining its existing support for WordPress
621 2.0 and 1.5. Incompatibilities that resulted in database warnings, fatal
622 errors, and which prevented FeedWordPress from syndicating new posts,
623 have been eliminated.
624
625 * RSS-FUNCTIONS.PHP RENAMED TO RSS.PHP: if you use the upgraded MagpieRSS
626 replacement that's included with FeedWordPress, be sure to note that
627 there are now *two* files to upload from the `OPTIONAL/wp-includes`
628 subdirectory in order to carry out the upgrade: rss-functions.php and
629 rss.php. **It is necessary to upload both files**, due to a change in
630 the file naming scheme in WordPress 2.1, and it is necessary to do so
631 whether you are using WordPress 2.1 or not. If you only upload the
632 `rss-functions.php` file as in previous installations you will not have
633 a working copy of MagpieRSS; the rss.php file contains the actual code.
634
635 * DATE BUG AFFECTING SOME PHP INSTALLATIONS RESOLVED: due to a subtle bug
636 in parse_w3cdtf(), some installations of PHP encountered problems with
637 FeedWordPress's attempt to date posts, which would cause some new posts
638 on Atom feeds to be dated as if they had apppeared in 1969 or 1970
639 (thus, effectively, never appearing on front page at all). This bug in
640 the date handling should now be fixed.
641
642 * PHP <?=...?> SHORT FORM ELIMINATED: some installations of PHP do not
643 allow the <?=...?> short form for printing PHP values, which was used
644 extensively in the FeedWordPress interface code. Since this could cause
645 fatal errors for users with the wrong installation of PHP, the short
646 form has been replaced with full PHP echo statements, and is no longer
647 used in FeedWordPress.
648
649 * BETTER USER INTERFACE INTEGRATION WITH WORDPRESS 2.x: Some minor changes
650 have been made to help the FeedWordPress interface pages blend in better
651 with the user interface when running under WordPress 2.x.
652
653 * GLOBAL CATEGORIES BUG RESOLVED: a bug that prevented some users from
654 setting one or more categories to apply to syndicated posts from all
655 feeds (using the checkbox interface under Options --> Syndication) has
656 been resolved.
657
658 Changes from 0.97 to 0.98
659 --------------------------
660
661 * WORDPRESS 2.0 COMPATIBILITY: This is a narrowly-targeted release to
662 solve a major outstanding problem. FeedWordPress is now compatible with
663 both WordPress 1.5 and WordPress 2.0. Incompatibilities that caused
664 fatal SQL errors, and a more subtle bug with off-kilter counts of posts
665 under a given category, have been resolved. FeedWordPress tests for
666 database schema using the global $wp_db_version variable (if null, then
667 we presume that we're dealing with WordPress 1.5).
668
669 NOTE: I have **not** fully tested FeedWordPress with WordPress 2.0.
670 Further testing may reveal more bugs. However, you should now be able
671 to get at least basic FeedWordPress functionality up and running.
672
673 * AUTHOR MATCHING: FeedWordPress tests several fields to see if it can
674 identify the author of the post as a user already in the WordPress user
675 database. In previous versions, it tested the user login, the nickname,
676 and tested for "aliases" listed in the Profile (see documentation). FWP
677 now also matches authors on the basis of e-mail address (*if* an e-mail
678 address is present). This is particularly helpful for formats such as
679 RSS 2.0, in which authors are primarily identified by e-mail addresses.
680
681 Changes from 0.96 to 0.97
682 -------------------------
683
684 * INSTALLATION PROCEDURE: Some of the changes between 0.96 and 0.97
685 require upgrades to the meta-data stored by FeedWordPress to work
686 properly. Thus, if you are upgrading from 0.96 or earlier to 0.97, most
687 FeedWordPress operations (including updates and template functions)
688 WILL BE DISABLED until you run the upgrade procedure. Fortunately,
689 running the upgrade procedure is easy: just go to either Options -->
690 Syndication or Links --> Syndicated in the WordPress Dashboard and press
691 the button.
692
693 * FEED FORMAT SUPPORT: Support has been added for the Atom 1.0 IETF
694 standard. Several other elements are also newly supported
695 (dcterms:created, dcterms:issued, dcterms:modified, dc:identifier,
696 proper support for the RSS 2.0 guid element, the RSS 2.0 author element,
697 the use of Atom author or Dublin Core dc:creator constructs at the feed
698 level to identify the author of individual items, etc.)
699
700 N.B.: full support of several Atom 1.0 features, such as categories
701 and enclosures, requires you to install the optional rss-functions.php
702 upgrade in your wp-includes directory.
703
704 * BUG FIX: Running `update-feeds.php` from command line or crontab
705 returned "I don't syndicate..." errors. It turns out that WordPress
706 sometimes tramples on the internal PHP superglobals that I depended on
707 to determine whether or not the script was being invoked from the
708 command line. This has been fixed (the variables are now checked
709 *before* WordPress can trample them). Note that `update-feeds.php` has
710 been thoroughly overhauled anyway; see below for details.
711
712 * BUG FIX: Duplicate categories or author names. Fixed two bugs that could
713 create duplicate author and/or category names when the name contained
714 either (a) certain international characters (causing a mismatch between
715 MySQL and PHP's handling of lowercasing text), or (b) characters that
716 have a special meaning in regular expressions (causing MySQL errors when
717 looking for the author or category due to regexp syntax errors). These
718 should now be fixed thanks to careful escaping of names that go into
719 regular expressions and careful matching of lowercasing functions
720 (comparing results from PHP only to other results from PHP, and results
721 from MySQL only to other results from MySQL).
722
723 * BUG FIX: Items dated December 31, 1969 should appear less often. The
724 function for parsing W3C date-time format dates that ships with
725 MagpieRSS can only correctly parse fully-specified dates with a
726 fully-specified time, but valid W3C date-time format dates may omit the
727 time, the day of the month, or even the month. Some feeds in the wild
728 date their items with coarse-grained dates, so the optional
729 `rss-functions.php` upgrade now includes a more flexible parse_w3cdtf()
730 function that will work with both coarse-grained and fully-specified
731 dates. (If parts of the date or the time are omitted, they are filled in
732 with values based on the current time, so '2005-09-10' will be dated to
733 the current time on that day; '2004' will be dated to this day and time
734 one year ago.
735
736 N.B.: This fix is only available in the optional `rss-functions.php`
737 upgrade.
738
739 * BUG FIX: Evil use of HTTP GET has been undone. The WordPress interface
740 is riddled with inappropriate (non-idempotent) uses of HTTP GET queries
741 (ordinary links that make the server do something with significant
742 side-effects, such as deleting a post or a link from the database).
743 FeedWordPress did some of this too, especially in places where it aped
744 the WordPress interface (e.g. the "Delete" links in Links -->
745 Syndicated). That's bad business, though. I've changed the interface so
746 that all the examples of improper side-effects that I can find now
747 require an HTTP POST to take effect. I think I got pretty much
748 everything; if there's anything that I missed, let me know.
749
750 Further reading: [Sam Ruby 2005-05-06: This Stuff Matters](http://www.intertwingly.net/blog/2005/05/06/This-Stuff-Matters)
751
752 * BUG FIX: Categories applied by `cats` setting should no longer prevent
753 category-based filtering from working. In FeedWordPress, you can (1)
754 apply certain categories to all syndicated posts, or all posts from
755 a particular feed; and (2) filter out all posts that don't match one
756 of the categories that are already in the WordPress database (allowing
757 for simple category-based filtering; just load up WordPress with the
758 categories you want to accept, and then tell FeedWordPress not to create
759 new ones). However, the way that (1) and (2) were implemented meant that
760 you couldn't effectively use them together; once you applied a known
761 category to all syndicated posts from a particular feed, it meant that
762 they'd have at least one familiar category (the category or categories
763 you were applying), and that would get all posts past the filter no
764 matter what categories they were originally from.
765
766 Well, no longer. You can still apply categories to all syndicated posts
767 (using either Syndication --> Options, or the feed-level settings under
768 Links --> Syndicated). But these categories are not applied to the post
769 until *after* it has already passed by the "familiar categories" filter.
770 So now, if you want, you can do category filtering and *then* apply as
771 many categories as you please to all and only posts that pass the filter.
772
773 * BUG FIX: Other minor typos and HTML gaffes were fixed along the way.
774
775 * PERFORMANCE: get_feed_meta() no longer hits the database for information
776 on every call; it now caches link data in memory, so FeedWordPress only
777 goes to the database once for each syndicated link. This may
778 substantially improve performance if your database server resources
779 are tight and your templates make a lot of use of custom settings from
780 get_feed_meta().
781
782 * API CHANGE: Link ID numbers, rather than RSS URIs, are now used to
783 identify the feed from which a post is syndicated when you use template
784 functions such as get_feed_meta(). The practical upshot of this is you
785 can switch feeds, or change the feed address for a particular syndicated
786 site, without breaking your templates for all the posts that were
787 syndicated from the earlier URI.
788
789 * API CHANGE: if you have plugins or templates that make use of the
790 get_feed_meta() function or the $fwp_feedmeta global, note that the
791 data formerly located under the `uri` and `name` fields is now located
792 under the `link/uri` field and the `link/name` field, respectively. Note
793 also that you can access the link ID number for any given feed under the
794 global $fwp_feedmeta['link/id'] (in plugins) or
795 get_feed_meta('link/id') (in a template in post contexts).
796
797 * FEATURE: the settings for individual feeds can now be edited using a
798 humane interface (where formerly you had to tweak key-value pairs in the
799 Link Notes section). To edit settings for a feed, pick the feed that you
800 want under Links --> Syndicated and click the Edit link.
801
802 * FEATURE: The "Unsubscribe" button (formerly "Delete") in Links -->
803 Syndicated now offers three options for unsubscribing from a feed: (1)
804 turning off the subscription without deleting the feed data or affecting
805 posts that were syndicated from the feed (this works by setting the Link
806 for the feed as "invisible"); (2) deleting the feed data and all of the
807 posts that were syndicated from the feed; or (3) deleting the feed data
808 and *keeping* the posts that were syndicated from the feed
809 setting the Link to "Invisible" (meaning that it will not be displayed
810 in lists of the site links on the front page, and it won't be checked
811 for updates; (2) deleting the Link and all of the posts that were
812 syndicated from its feed; or (3) deleting the feed data but keeping the
813 posts that were syndicated (which will henceforward be treated as if
814 they were local rather than syndicated posts). (Note that (1) is usually
815 the best option for aggregator sites, unless you want to clean up the
816 results of an error or a test.)
817
818 * FEATURE / BUG FIX: If you have been receiving mysterious "I don't
819 syndicate...", or "(local) HTTP status code was not 200", or "(local)
820 transport error - could not open socket", or "parse error - not well
821 formed" errors, then this update may solve your problems, and if it does
822 *not* solve them, it will at least make the reasons for the problems
823 easier to understand. That's because I've overhauled the way that
824 FeedWordPress goes about updating feeds.
825
826 If you use the command-line PHP scripting method to run scheduled
827 updates, then not much should change for you, except for fewer
828 mysterious errors. If you have done updates by sending periodic HTTP
829 requests to <http://your-blog.com/path/wp-content/update-feeds.php>,
830 then the details have changed somewhat; mostly in such a way as to make
831 things easier on you. See the README file or online documentation on
832 Staying Current for the details.
833
834 * FEATURE: FeedWordPress now features a more sophisticated system for
835 timed updates. Instead of polling *every* subscribed feed for updates
836 *each* time `update-feeds.php` is run, FeedWordPress now keeps track of
837 the last time it polled each feed, and only polls them again after a
838 certain period of time has passed. The amount of time is normally set
839 randomly for each feed, in a period between 30 minutes and 2 hours (so
840 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
841 directly by the feed, which brings us to ...
842
843 * FEATURE: FeedWordPress now respects the settings in the `ttl` and
844 Syndication Module RSS elements. Feeds with these elements set will not
845 be polled any more frequently than they indicate with these feeds unless
846 the user manually forces FeedWordPress to poll the feed (see Links -->
847 Syndicated --> Edit settings).
848
849 Changes from 0.95 to 0.96
850 -------------------------
851
852 * FEATURE: support has been added for enclosures in RSS 2.0 and Atom
853 0.6+ newsfeeds. WordPress already supports adding enclosures to an
854 item; FeedWordPress merely gets the information on the enclosure
855 from the feed it is syndicating and plugs that information directly
856 into the WordPress database so that (among other things) that post
857 will have its enclosure listed in your blog's RSS 2 newsfeed.
858
859 Note that enclosure support requires using the optional MagpieRSS
860 upgrade (i.e., replacing your `wp-includes/rss-functions.php` with
861 `OPTIONAL/wp-includes/rss-functions.php` from the FWP archive)
862
863 * FEATURE: for completeness's sake, there is now a feed setting,
864 `hardcode url`, that allows you to set the URI for the front page
865 of a contributor's website manually (that is, prevent it from being
866 automatically updated from the feed channel link on each update). To
867 set the URI manually, put a line like this in the Link Notes section
868 of a feed:
869
870 hardcode url: yes
871
872 You can also instruct FeedWordPress to use hardcoded URIs by default
873 on all feeds using Options --> Syndication
874
875 * FEATURE: by default, when FeedWordPress finds new syndicated posts,
876 it (1) publishes them immediately, (2) turns comments off, and (3)
877 turns trackback / pingback pings off. You can now alter all three
878 default behaviors (e.g., to allow pings on syndicated posts, or to
879 send newly-syndicated posts to the draft pile for moderation) using
880 Options --> Syndication
881
882
883 Changes from 0.91 to 0.95
884 -------------------------
885
886 * BUG FIX: Fixed an obscure bug in the handling of categories:
887 categories with trailing whitespace could cause categories with
888 duplicate names to be created. This no longer happens. While I was
889 at it I tightened up the operation of
890 FeedWordPress::lookup_categories() a bit in general.
891
892 * FEATURE DEPRECATED: the feed setting `hardcode categories` is now
893 deprecated in favor of `unknown categories` (see below), which
894 allows you to strip off any syndication categories not already in
895 your database using `unknown categories: default` or `unknown
896 categories: filter`. If you have `hardcode categories: yes` set on a
897 feed, this will be treated as `unknown categories: default` (i.e.,
898 no new categories will be added, but if a post doesn't match any of
899 the categories it will be added in the default category--usually
900 "Uncategorized" or "General").
901
902 * FEATURE: You can now set global defaults as to whether or not
903 FeedWordPress will update the Link Name and Link Description
904 settings for feeds automatically from the feed title and feed
905 tagline. (By default, it does, as it has in past versions.) Whether
906 this behavior is turned on or off, you can still override the
907 default behavior using feed settings of `hardcode name: yes`,
908 `hardcode name: no`, `hardcode description: yes`, or `hardcode
909 description: no`.
910
911 * FEATURE: Users can now provide one or several "aliases" for an
912 author, just as they can for a category. For example, to make
913 FeedWordPress treat posts by "Joseph Cardinal Ratzinger" and "Pope
914 Benedict XVI" as by the same author, edit the user profile for Pope
915 Benedict XVI and add a line like this to the "User profile" field:
916
917 a.k.a.: Joseph Cardinal Ratzinger
918
919 You can add several aliases, each on a line by itself. You can also
920 add any other text you like to the Profile without interfering with
921 the aliases.
922
923 * FEATURE: Users can now choose how to handle syndicated posts that
924 are in unfamiliar categories or by unfamiliar authors (i.e.,
925 categories or authors whose names are not yet in the WordPress
926 database). By default, FeedWordPress will (as before) create a new
927 category (or new author) and use it for the current post and any
928 future posts. This behavior can be changed, either for all feeds or
929 for one or another particular feed.
930
931 There are now three different options for an unfamiliar author: (1)
932 FeedWordPress can create a new author account and attribute the
933 syndicated post to the new account; (2) FeedWordPress can attribute
934 the post to an author if the author's name is familiar, and to a
935 default author (currently, this means the Site Administrator
936 account) if it is not; (3) FeedWordPress can drop posts by
937 unfamiliar authors and syndicate only posts by authors who are
938 already in the database.
939
940 There are, similarly, two different options for an unfamiliar
941 category: (1) FeedWordPress can create new categories and place the
942 syndicated post in them; (2) FeedWordPress can drop the unfamiliar
943 categories and place syndicated posts only in categories that it is
944 already familiar with. In addition, FeedWordPress 0.95 lets you
945 choose whether posts that are in *no* familiar categories should be
946 syndicated (and placed in the default category for the blog) or
947 simply dropped.
948
949 You can set the default behavior for both authors and categories
950 using the settings in Options --> Syndication. You can also set
951 different behavior for specific feeds by adding the `unfamiliar
952 author` and / or `unfamiliar categories` settings to the Link Notes
953 section of a feed:
954
955 unfamiliar author: (create|default|filter)
956 unfamiliar categories: (create|default|filter)
957
958 A setting of `unfamiliar author: create` will make FeedWordPress
959 create new authors to match unfamiliar author names *for this feed
960 alone*. A setting of `unfamiliar author: default` will make it
961 assign posts from unfamiliar authors to the default user account. A
962 setting of `unfamiliar author: filter` will cause all posts (from
963 this feed alone) to be dropped unless they are by an author already
964 listed in the database. Similiarly, `unfamiliar categories: create`
965 will make FeedWordPress create new categories to match unfamiliar
966 category names *for this feed alone*; `unfamiliar categories:
967 default` will cause it to drop any unfamiliar category names; and
968 `unfamiliar categories: filter` will cause it to *both* drop any
969 unfamiliar category names *and* to only syndicate posts that are
970 placed in one or more familiar categories.
971
972 These two new features allow users to do some coarse-grained
973 filtering without having to write a PHP filter. Specifically, they
974 offer an easy way for you to filter feeds by category or by author.
975 Suppose, for example, that you only wanted to syndicate posts that
976 your contributors place in the "Llamas" category. You could do so by
977 setting up your installation of WordPress so that the only category
978 in the database is "Llamas," and then use Options --> Syndication to
979 set "Unfamiliar categories" to "don't create new categories and
980 don't syndicate posts unless they match at least one familiar
981 category". Now, when you update, only posts in the "Llamas" category
982 will be syndicated by FeedWordPress.
983
984 Similarly, if you wanted to filter one particular feed so that only
985 posts by (for example) the author "Earl J. Llama" were syndicated to
986 your site, you could do so by creating a user account for Earl J.
987 Llama, then adding the following line to the settings for the feed
988 in Link Notes:
989
990 unfamiliar author: filter
991
992 This will cause any posts from this feed that are not authored by
993 Earl J. Llama to be discarded, and only the posts by Earl J. Llama
994 will be syndicated. (If the setting is used on one specific feed, it
995 will not affect how posts from other feeds are syndicated.)
996
997