PluginProbe
FeedWordPress / 0.91
FeedWordPress v0.91
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
← All changes | README.text +173 -384 0.970.91 View file →
@@ -1,425 +1,215 @@
1 1 FeedWordPress
2 2 =============
3 3
4 -* Author: [Charles Johnson](http://radgeek.com/contact)
5 -* Version: 0.97
4 +* Author: [Charles Johnson](http://www.radgeek.com/contact)
5 +* Version: 0.91
6 6 * Project URI: <http://projects.radgeek.com/feedwordpress>
7 -* License: GPL 2. See License below for copyright jots and tittles.
7 +* License: GPL. See License below for copyright jots and tittles.
8 8
9 9 Introduction
10 10 ------------
11 -FeedWordPress is an Atom/RSS aggregator for WordPress 1.5. It syndicates content
12 -from newsfeeds that you choose into your WordPress blog; if you syndicate
13 -several newsfeeds then you can use WordPress's posts database and templating
14 -engine as the back-end of an aggregation ("planet") website. I originally
15 -developed it because I needed a more flexible replacement for [Planet][] to
16 -use at [Feminist Blogs][].
11 +FeedWordPress is an Atom/RSS aggregator for WordPress. It syndicates content
12 +from newsfeeds that you select into your WordPress blog; if you syndicate
13 +several newsfeeds then you can WordPress's posts database and templating engine
14 +as the back-end of an aggregation ("planet") website. I originally developed it
15 +because I needed a more flexible replacement for [Planet][] to use at
16 +[Feminist Blogs][].
17 17
18 18 [Planet]: http://www.planetplanet.org/ "Planet Planet"
19 19 [Feminist Blogs]: http://www.feministblogs.org/
20 20
21 21 FeedWordPress is designed with flexibility, ease of use, and ease of
22 -configuration in mind. You'll need a working installation of [WordPress
23 -1.5][] and FTP or SFTP access to your web host. The ability to create cron
24 -jobs on your web host would be very helpful but it's not absolutely
25 -necessary. You *don't* need to tweak any plain-text configuration files and
26 -you *don't* need shell access to your web host to make it work. (Although, I
27 -should point out, web hosts that *don't* offer shell access are *bad web
28 -hosts*.)
22 +configuration in mind. You'll need a working installation of [WordPress 1.5][]
23 +and FTP or SFTP access to your web host. The ability to create cron jobs on your
24 +web host would be very helpful but it's not absolutely necessary. You *don't*
25 +need to tweak any plain-text configuration files and you *don't* need shell
26 +access to your web host to make it work. (Although, I should point out, web
27 +hosts that *don't* offer shell access are *bad web hosts*.)
29 28
30 29 [WordPress 1.5]: http://wordpress.org/development/2005/02/strayhorn/
31 30
32 -Installation
33 -### Requirements ###
31 +Installation & Requirements
32 +---------------------------
33 +You'll need a website with WordPress 1.5 installed and configured and FTP or
34 +SFTP access to your web space. You'll probably also want to have either (1)
35 +the ability to create cron jobs on your web host, or (2) a computer of your
36 +own that has always-on Internet access.
34 37
35 -To use version 0.97 of FeedWordPress, you will need:
36 -
37 -1. an installed configured copy of WordPress 1.5.x. (It *won't work* with
38 - WP 1.2 or WP 1.6 development builds.)
39 -
40 -2. FTP or SFTP access to your web host
41 -
42 -And you'll probably also want to have either:
43 -
44 -1. the ability to create cron jobs on your web host, or at least
45 -
46 -2. a computer of your own and always-on Internet access
47 -
48 -### Installation ###
49 -
50 -#### Upgrades ####
51 -
52 -To *upgrade* an existing installation of FeedWordPress to version 0.97:
53 -
54 -1. Download the FeedWordPress archive in zip or gzipped tar format and
55 - extract the files on your computer. Replace your existing FeedWordPress
56 - files with the new files. Be sure to upgrade `rss-functions.php` if you
57 - use the optional MagpieRSS upgrade, or don't use it yet but do want to
58 - syndicate Atom 1.0 feeds.
59 -
60 -2. **Immediately** log in to the WordPress Dashboard, and go to Options -->
61 - Syndicated. Follow the directions to launch the database upgrade
62 - procedure. The new version of FeedWordPress incorporates some
63 - long-needed improvements, but old meta-data needs to be updated to
64 - prevent duplicate posts and other possible maladies. If you're upgrading
65 - an existing installation, updates and FeedWordPress template functions
66 - *will not work* until you've done the upgrade.
67 -
68 -3. Take a coffee break while the upgrade runs. It should, hopefully, finish
69 - within a few minutes even on relatively large databases.
70 -
71 -4. `update-feeds.php` has been overhauled to improve performance and ease
72 - of use, and also to make errors easier to detect and eliminate. The
73 - overhaul doesn't require any changes to your set up *if* you used
74 - XML-RPC pings, or command-line PHP, to do scheduled updates. It *does*
75 - affect you if you used curl or some other tool to send HTTP requests to
76 - `update-feeds.php`: your old cron job will probably not work anymore.
77 - See [Setting Up Feed Updates][] below to get scheduled updates back on
78 - track.
79 -
80 -5. Enjoy your new installation of FeedWordPress.
81 -
82 -#### New Installations ####
83 -
84 -1. Install `feedwordpress.php` in your WordPress `plugins` directory
85 - and `update-feeds.php` in your WordPress `wp-content` directory.
38 +1. Install `feedwordpress.php` in your WordPress `plugins` directory and
39 + `update.php` in your WordPress `wp-content` directory.
86 40
87 41 2. (Optional) Upgrade the copy of MagpieRSS packaged with WordPress by
88 42 installing the new `rss-functions.php` (archived in
89 43 `OPTIONAL/wp-includes`) into your WordPress `wp-includes` directory.
90 - Upgrading MagpieRSS is necessary if you want to take advantage of
91 - support for Atom 1.0, multiple post categories, RSS enclosures, and
92 - multiple character encodings. (Note, however, that support for
93 - transliterating between character encodings is a very complex and
94 - iffy prospect in some PHP environments, so if you intend to use
95 - a lot of feeds with alternate encodings you should make sure that
96 - your installation of PHP is up-to-date and that you keep a copy of
97 - the old MagpieRSS around to compare results.)
98 44
99 -3. Log in to the WordPress Dashboard and activate the FeedWordPress
100 - plugin.
45 +3. Log in to the WordPress Dashboard and activate the FeedWordPress plugin.
46 + Go to Options --> Syndication to set up initial settings for the
47 + syndication link category ("Contributors") by default and the RPC secret
48 + word (blank by default, but you should probably set it to something.)
101 49
102 -4. While you're at the Dashboard, once the plugin is activated, you can
103 - go to Options --> Syndication and set (1) the link category that
104 - FeedWordPress will syndicate links from (by default, "Contributors"),
105 - and (2) a "secret word" for your RPC-XML updating interface. This
106 - provides some light security by keeping passing ruffians from saying
107 - "Update all the feeds" at will to your FeedWordPress installation.
50 +4. Set up links for syndication from the WordPress Dashboard using
51 + Links --> Syndicated or Links --> Import.
108 52
109 -5. Go to Links --> Syndicated to set up the list of sites that you want
110 - FeedWordPress to syndicate onto your blog. (If you have the feeds you
111 - want to aggregate in a service such as Bloglines, you may prefer to
112 - export them to an OPML file and use WordPress's Links --> Import to
113 - import them into the contributors category.)
53 +5. FeedWordPress is now *ready* to feed syndicated content into WordPress.
54 + In order for it to actually receive that content, either (1) have your
55 + contributors add WordPress's XML-RPC URI to their blog's list of URIs
56 + to ping when they update posts, (2) set up a cron job to check in on all
57 + the feeds on a regular basis, or (3) both. If you do (2), you can either
58 + set up a job to run `php update-feeds.php` on your web host, or set one
59 + up on any computer with always-on Internet access to request
60 + `update-feeds.php` over the web.
61 +
62 + If your copy of WordPress is installed at <http://www.zyx.com/blog>, and
63 + you set the secret word for XML-RPC pings to "foo", then your XML-RPC
64 + URI will be <http://www.zyx.com/blog/xmlrpc.php>, and the URI to request
65 + for `update-feeds.php` to update all feeds will be
66 + <http://www.zyx.com/blog/wp-content/update-feeds.php?shibboleth=foo>
114 67
115 -#### Setting Up Feed Updates ####
68 +For detailed installation instructions, point your web browser to
69 +<http://projects.radgeek.com/feedwordpress/install>.
116 70
117 -FeedWordPress is now ready to accept posts from its syndication sources.
118 -Unfortunately, it doesn't yet know *when* to go get them. (**This may be true
119 -even if you are upgrading an existing installation of FeedWordPress:** your old
120 -cron job will still work if you used command-line PHP or blogging software pings
121 -to do updates, but it will need to be fixed if you used curl or another tool to
122 -send HTTP requests to `update-feeds.php`.)
71 +Feed Settings
72 +-------------
123 73
124 -You can load in syndicated posts for the first time by pointing your web browser
125 -to `update-feeds.php`. If you have WordPress installed at, say,
126 -<http://www.zyx.com/blog> then you should point your browser to
127 -<http://www.zyx.com/blog/wp-content/update-feeds.php> and log in as any user in
128 -the user database. (You may want to create a new "dummy" user for doing
129 -scheduled updates, using **Users --> Authors & Users --> Add New User**. Tell
130 -FeedWordPress to update all feeds, and you'll get the first wave of posts
131 -imported into the database.
74 +Once you have your links configured and regular feed updates scheduled, you can
75 +mostly leave FeedWordPress to run on its own. If you need to add, remove, or
76 +change information for any contributors, you can do so from the WordPress
77 +Dashboard under Links --> Syndicated. If you want to distribute the labor of
78 +adding, updating, and managing feeds, you can use the WordPress login and access
79 +privileges system. Users with an access level of 5 or greater can add or modify
80 +syndicated links, and change syndication options.
132 81
133 -Congratulations! You should now have an aggregator site full of delicious
134 -syndicated content hot off of the newswires. Now you just need a way to *keep*
135 -the content freshly updated. Unless you enjoy manually browsing to
136 -`update-feeds.php` every hour on the hour, you'll probably want to do this by
137 -setting up your site for automated updates.
82 +All the information for a syndicated feed is managed through the WordPress Links
83 +database. Feeds in the category to be syndicated (by default, "Contributors")
84 +use several fields of the standard WordPress Link record:
138 85
139 -You can pull that off in one of two ways, or by a mixture of both:
140 -
141 -1. **The Blogging Software Ping Method:** You can get all of your
142 - contributors to add you to the list of URIs that they notify of updates:
143 - while FeedWordPress is activated, it will accept XML-RPC "recently
144 - updated" pings in the standard format accepted by Weblogs.com,
145 - Ping-O-Matic, Technorati, and other services. Most blogging software
146 - allows users to add a URI to the list of URIs that get pinged on each
147 - update. (See, for example, Options --> Writing --> Update Services in
148 - WordPress, or Configuration --> Preferences --> Publicity / Remote
149 - Interfaces / TrackBack in Movable Type.)
150 -
151 - If you can get a contributor to add your XML-RPC URI to her
152 - services-to-ping list (if you have WordPress installed at
153 - <http://www.zyx.com/blog>, say, the URI to add should be
154 - <http://www.zyx.com/blog/xmlrpc.php>), then whenever she updates her
155 - blog, her blogging software will ping your FeedWordPress installation,
156 - and FeedWordPress will look up her feed to grab the new posts off of
157 - it.
86 +- The Link URI is used to store a URI to the front page (*not* the feed!)
87 + of the syndicated website.
158 88
159 -2. **The Scheduled Update Job Method:** You may very well not be able to
160 - get all your contributors to add your site to their blogging software's
161 - ping list, and even if you do you may want to have a back-up option to
162 - catch updates later even if the ping fails to go through on one
163 - particular occasion. You'll need to create a scheduled job to
164 - periodically check for updates on *all* the feeds. You'll need either
165 - (a) the ability to create cron jobs on your web host or (b) access to
166 - another computer with a reliable, always-on Internet connection.
89 +- The Link Name is used to store the title of the syndicated website.
90 +
91 +- The Short Description is used to store the tagline of the syndicated
92 + website.
93 +
94 +- The RSS URI is used to store the URI for the feed to be syndicated.
167 95
168 - If you *can* create a crontab on your web host, then the best thing to
169 - do is to create a cron job that will run update-feeds.php through the
170 - PHP command-line interface. For example, if you have WordPress installed
171 - in `~/www/wp` (where ~ is your home directory), you might insert the
172 - following line into your crontab:
96 +- The Link Notes are used to store a collection of manually-encoded and
97 + automatically-generated settings that apply to this feed. The format of
98 + settings in Link Notes is:
173 99
174 - 25 * * * * cd $HOME/www/wp/wp-content ; php -q update-feeds.php
175 -
176 - If you *don't* have access to (a), you can still save the day using
177 - another computer with always-on Internet access that sends a POST
178 - request to the `update-feeds.php` URI on a regular schedule. So, for
179 - example, if you have WordPress installed at <http://www.zyx.com/blog>,
180 - and you have a dummy user in your WordPress database with the login name
181 - 'login' and the password 'pass', then you could add the following line
182 - to the crontab on a home Linux box:
100 + key1: value1
101 + key2: value2
102 + key3: value3
103 + feed/key1: value1
104 + feed/key2: value2
183 105
184 - 25 * * * * curl --user login:pass http://www.zyx.com/blog/wp-content/update-feeds.php -d update=quiet
106 + And so on. Values that are prefixed by 'feed/' are automatically
107 + generated from feed data every time the feed syndicated by this link is
108 + checked for updates. Values without the prefix are set manually by the
109 + user.
185 110
186 - The `-d update=quiet` switch ensures that (1) `update-feeds.php` will
187 - receive an HTTP POST request rather than an HTTP GET request (which
188 - is important, since it won't take any actions with side-effects -- such
189 - as checking for new posts -- unless it receives an HTTP POST); it also
190 - tells it to suppress the HTML output that it would generate for normal
191 - web browsers, and only to output text if it encounters errors (this will
192 - keep the number of e-mails you receive from the Cron Daemon to a
193 - minimum).
111 +Most settings in the Link Notes have no effect on FeedWordPress, but can be
112 +accessed from templates using the ``get_feed_meta()`` template function in a
113 +post context. For example, many aggregator sites use a "face" image for each
114 +feed to visually distinguish posts from different feeds. To implement a face
115 +feature, you could add a line like this to each feed's Link Notes section:
194 116
195 - If you are using Windows XP and have a version of curl (such as the
196 - version included in [Cygwin][]), you can create a Scheduled Task to
197 - similar effect.
117 + face: http://www.zyx.com/mugs/ugly
198 118
199 - [Cygwin]: http://www.cygwin.com/
119 +The URI should be changed out for each feed to point to the appropriate image,
120 +of course. Then, to use the setting from within a template:
200 121
201 -Basic Concepts
202 -FeedWordPress is written as a plugin for [WordPress 1.5][]. It is designed to
203 -store all the data it needs within the WordPress database and to make that data
204 -easy to manage from within the WordPress Dashboard.
122 + // In a post context
123 + <?php $img = get_feed_meta('face'); if (strlen($img) > 0): ?>
124 + <img src="<?=$img?>" alt="" />
125 + <?php endif; ?>
205 126
206 -### Contributors / Newsfeeds ###
207 -
208 -FeedWordPress uses the WordPress Links database to keep a list of the feeds from
209 -which it will syndicate content. WordPress allows you to place links in
210 -categories; FeedWordPress will make use of all and only the links in one
211 -category (by default, this is a category named "Contributors"; you can change
212 -the category that FeedWordPress will use using **Options --> Syndication**).
213 -
214 -From WordPress's perspective, the list of Contributors are normal links, and
215 -they can be manipulated like other links through the WordPress Dashboard.
216 -However, FeedWordPress provides a nicer interface for adding, removing, or
217 -changing information for the Contributor Links from the WordPress Dashboard,
218 -under **Links --> Syndicated**.
219 -
220 -If you want to distribute the labor of adding, updating, and managing feeds
221 -between several people, you can use the WordPress login andaccess privileges
222 -system. Any users with an access level of 5 or greater can add, delete, and
223 -modify Contributors; users with an access level of 6 or greater can change
224 -syndication options.
225 -
226 -When FeedWordPress looks for new posts, it retrieves one or all of the links
227 -from the Contributors category (depending on whether it has been told to scan
228 -for new posts on one or all of the feeds), determines which of them should be
229 -polled for updates (based on how long it has been since the last time each feed
230 -was polled for updates), and then uses an HTTP conditional GET to check for
231 -updates at the "RSS URI" for each Link that it selects. Any new posts are added
232 -to the database, and old posts that have been updated since the last poll are
233 -updated to reflect the new version.
234 -
235 -__Feed settings:__ All of the information for a syndicated feed is stored in the
236 -WordPress Links database, and can be easily edited using an interface that
237 -FeedWordPress provides under **Links --> Syndicated**. (If you're curious about
238 -the technical details of how the information is stored, you can find out more
239 -under [API: How feed information is stored][].)
240 -
241 -You can use a feed's **Edit** link under **Links --> Syndicated** to affect how
242 -FeedWordPress prcesses posts from that feed. (Most of these options can either
243 -be set for *one particular feed* using **Links --> Syndicated --> Edit**, or set
244 -as the default for *all feeds* using **Options --> Syndication**.) The **Edit**
245 -link also allows you to set **Custom Feed Settings** for use in templates,
246 -through the use of the [`get_feed_meta()`][get_feed_meta] template function in a
247 -post context (see [Template API][]). For example, many aggregator sites use a
248 -"face" image for each feed to visually distinguish posts from different feeds.
249 -To implement a face feature, you could add a custom setting for each Contributor
250 -Link, with the key of "face" and a URI such as "http://www.zyx.com/mugs/ugly"
251 -for the value. (The URI should be changed out for each feed to point to the
252 -appropriate image, of course.) Then, to use the setting from within a template,
253 -add something like:
254 -
255 - // In a post context
256 - <?php $img = get_feed_meta('face'); if (strlen($img) > 0): ?>
257 - <img src="<?=$img?>" alt="" />
258 - <?php endif; ?>
259 -
260 127 ... which will display the image, if any, whose URI is set in the "face" setting
261 128 for the feed that post comes from. If there is no "face" setting for a
262 -particular feed, [`get_feed_meta()`][get_feed_meta] will return an empty string
263 -and no image will be displayed.
129 +particular feed, ``get_feed_meta()`` will return an empty string and no image
130 +will be displayed.
264 131
265 - [API: How feed information is stored]: http://projects.radgeek.com/feedwordpress/api#how-feed-information-is-stored
132 +Not all feed settings are only for templates. Some affect how FeedWordPress
133 +processes posts from that feed. Currently, the special settings are:
266 134
267 -### Syndicated Posts ###
135 +- `cats:` a colon-separated list of default categories for any post coming
136 + from this feed. So, for example, a this line in its Notes section:
268 137
269 -Whenever FeedWordPress updates, it scans one or more of the feeds in its
270 -Contributors list and adds any new posts that it finds to the WordPress
271 -database. Syndicated posts are displayed on your WordPress pages like any other
272 -posts: they can be listed in archives by category, author, or date; they can be
273 -found with the search box; and they are included in the newsfeed of your blog.
138 + cats: computers:web
274 139
275 -In your WordPress templates (**Presentation --> Theme Editor**) you can access
276 -special information about syndicated posts using [functions provided by
277 -FeedWordPress][Template API], such as [`is_syndicated()`][is_syndicated],
278 -[`the_syndication_source()`][the_syndication_source],
279 -[`the_syndication_source_link()`][the_syndication_source_link], and
280 -[`get_feed_meta()`][get_feed_meta]. For example, here is the template code that
281 -I use (in a post context) to display both the author's name and the original
282 -source of the post in the templates for [Feminist Blogs][]:
140 + ... will make FeedWordPress place any posts syndicated from that feed in
141 + the "computers" and "web" categories (*in addition to*, not *instead of*
142 + any categories that are applied to the post in the feed)
283 143
284 - <cite class="feed">from <?php the_author_posts_link()?><?php
285 - if (is_syndicated() and (get_the_author() !== get_syndication_source())):
286 - echo ' @ <a href="'; the_syndication_source_link(); echo '">';
287 - the_syndication_source();
288 - echo '</a>';
289 - endif; ?></cite>
144 +- `hardcode name: (yes|no)`
290 145
291 -For more information on template functions, see [Template API][].
146 + A yes/no setting. By default, FeedWordPress updates the value of the
147 + Link Name field automatically to reflect the title that is reported by a
148 + syndicated feed. (So, for example, if one of your contributors changes
149 + the title of her weblog, the change will be reflected on your
150 + Contributors list after the next update.) To manually set the Link Name
151 + and prevent your new name from being overridden by FeedWordPress (so as
152 + to, for example, use an abbreviated form of the site's title for reasons
153 + of space), change the Link Name to a title of your choosing and then add
154 + a line like this to the Link Notes section:
292 155
293 -### Categories ###
156 + hardcode name: yes
157 +
158 + If `hardcode name` is absent, or set to a value other than `yes`,
159 + FeedWordPress will take that as a 'no' and follow the default behavior.
294 160
295 -WordPress allows for posts to be placed in *categories*. Each syndicated post
296 -that FeedWordPress adds to the WordPress database is placed into a set of
297 -categories. FeedWordPress gets the list of category names to use from two
298 -sources:
161 +- `hardcode description: (yes|no)`
299 162
300 -1. Categories (or "tags") that the original author placed the post in on
301 - her blog
163 + A yes/no setting. By default, FeedWordPress updates the value of the
164 + Link Description field automatically to reflect the tagline or
165 + description that is reported by a syndicated feed. To manually set the
166 + Link Description and prevent your new description from being overridden
167 + by FeedWordPress (so as to, for example, use an abbreviated form of the
168 + site's tagline for reasons of space), change the Link Description to a
169 + title of your choosing and then add a line like this to the Link Notes
170 + section:
171 +
172 + hardcode description: yes
173 +
174 + If `hardcode description` is absent, or set to a value other than `yes`,
175 + FeedWordPress will take that as a 'no' and follow the default behavior.
302 176
303 -2. Categories that you set explicitly for each feed using the
304 - **Categories** checkbox under **Links --> Syndicated --> Edit**. For
305 - example, if you wanted all the posts from Alas, A Blog to be placed in
306 - the "Pacific Northwest" category and the "Cartoonists" category (*in
307 - addition to* any other categories that they were placed in on Alas, A
308 - Blog), you could do this by creating the categories, going to **Links
309 - --> Syndicated**, clicking the "Edit" link for Alas, A Blog, and
310 - checking those two categories under the checkbox captioned "Categories."
177 +- `hardcode categories: (yes|no)`
311 178
312 -Given the list of category names, FeedWordPress looks for categories in the
313 -WordPress database with the same name as either (1) the category name, or
314 -(2) one of the "aliases" listed in the category description.
179 + A yes/no setting. FeedWordPress places each syndicated post in a set of
180 + categories within WordPress. It gets that list from two sources:
181 +
182 + 1. Categories that you set explicitly for each feed (see the `cats` setting above)
183 +
184 + 2. Categories that the original author placed the post in on her blog
185 +
186 + If any of the categories on the list do not exist, they are created automatically.
187 +
188 + If you want the posts from a particular feed to be placed *only* in the
189 + categories that you set manually (see the `cats` setting above), and not
190 + in the categories that they are in on the Contributor's blog, then add
191 + a line like this to the Link Notes section:
192 +
193 + hardcode categories: yes
194 +
195 + If `hardcode categories` is absent, or set to a value other than `yes`,
196 + FeedWordPress will take that as a 'no' and follow the default behavior.
315 197
316 -__Aliases:__ Different often authors use slightly different names for categories
317 -that mean the same thing (contributors to Feminist Blogs, for example, used
318 -categories including "Feminism", "feministy stuff", "Women's Issues", "Gender
319 -Issues", "Gender Equality", and so on). If you want FeedWordPress to treat one
320 -category name as a synonym for another, you can do so by creating an "alias" for
321 -the category. For example, to make FeedWordPress treat posts that are placed in
322 -the category "feministy stuff" as if they had been placed in the category
323 -"Feminism", go to **Manage --> Categories**, find the category "Feminism" and
324 -click the "Edit" link for it, and then add the following to the Description
325 -field, on a line by itself:
198 +- `post status:` sets the default post status for posts from this feed
199 + This can be 'publish', 'draft', or 'private'. By default, it is set to
200 + 'publish' (syndicated posts go online immediately).
326 201
327 - a.k.a.: feministy stuff
202 +- `comment status:` sets the default status for comments on posts
203 + syndicated from this feed. By default, all comments on syndicated posts
204 + are closed, but you can set it to 'open', 'closed', or 'registered_only'
205 + for particular feeds.
328 206
329 -You can add as many aliases as you like. You can also add any other text that
330 -you like to the Description without interfering with FeedWordPress's ability to
331 -use the aliases. Each alias must be on a line by itself.
207 +- `ping status:` sets the default status for receiving TrackBack and
208 + PingBack pings on posts syndicated from this feed. By default,
209 + syndicated posts are closed to pings, but you can set this to 'open' or
210 + 'closed' for particular feeds.
332 211
333 -__Unfamiliar categories:__ If one of the category names that a newsfeed provides
334 -is *unfamiliar* -- that is, if there is not yet any category in your WordPress
335 -database that either has that name, or uses that name as an alias -- then by
336 -default FeedWordPress will *automatically create* a new category with that name
337 -and place the current post in it. The default behavior can be changed so that
338 -unfamiliar categories will *not* be added to the database, using the
339 -**Unfamiliar categories** setting, either for *all* feeds (under **Options -->
340 -Syndication**) or for *one particular feed* (under **Links --> Syndicated**).
341 -
342 -If you choose to disable the creation of new categories, either for all feeds or
343 -for one particular feed, then you can also choose whether or not FeedWordPress
344 -should syndicate posts that do not match *any* of the categories that are
345 -currently in the database. This allows you to do some simple filtering of posts
346 -by category: if you want to your blog to syndicate only the posts in one
347 -particular category from a feed that has several categories, you could do so by
348 -creating a category by that name, adding the new feed(s), and then setting
349 -**Unfamiliar categories** under **Links --> Syndicated --> Edit** to "don't
350 -create new categories and don't syndicate posts unless they match at least one
351 -familiar category".
352 -
353 -Since only posts in categories that are in your database will be included, and
354 -only the category or categories that you wanted posts from has been added to
355 -your database, this will filter out all the posts that aren't in the category or
356 -categories that you defined ahead of time. (Similarly, you could set up
357 -FeedWordPress so that *all* the feeds are filtered by author by creating the set
358 -of users named after the authors you want to syndicate, and then setting the
359 -default behavior for *all* feeds at **Options --> Syndication**).
360 -
361 -If you need a category filter with more complex logic, you can always create a
362 -`syndicated_item` filter in PHP (see [Plugin API][]) that manipulates the
363 -`['categories']` array of a syndicated item.
364 -
365 -### Authors ###
366 -
367 -Most newsfeeds include information about the author of the items on them.
368 -(If a feed doesn't, then FeedWordPress will create an author's name based on
369 -the title of the feed from which the item was taken.) This information is used
370 -to determine the WordPress user that the post will be attributed to. Given the
371 -name of the author, FeedWordPress looks for authors in the WordPress database
372 -with the same name as either (1) their login, (2) their first name, (3) their
373 -nickname, (4) their full name, or (5) one of the "aliases" listed in the
374 -user's profile.
375 -
376 -__Aliases:__ If there is an author who posts under more than one name (for
377 -example, one of our contributors at [Feminist Blogs][] posts on several
378 -different blogs, sometimes using her full name and sometimes using only her
379 -first name), then you can ensure that FeedWordPress will attribute those posts
380 -to the same author by creating "aliases" for the author. For example, to make
381 -FeedWordPress treat posts by "Joseph Cardinal Ratzinger" and posts by "Pope
382 -Benedict XVI" as having the same author, go to **Users --> Authors & Users**,
383 -click on the "Edit" link for Pope Benedict XVI, and add a line like this to the
384 -Profile text:
385 -
386 - a.k.a.: Joseph Cardinal Ratzinger
387 -
388 -You can add as many aliases as you like. You can also add any other text that
389 -you like to the Profile without interfering with FeedWordPress's ability to use
390 -the aliases. Each alias must be on a line by itself.
391 -
392 -__Unfamiliar authors:__ By default, if the author named by the newsfeed is
393 -unfamiliar -- that is, if there is no-one with that name registered in the
394 -WordPress author's database -- then by default FeedWordPress will automatically
395 -create a new user account with the given name and attribute the post to the new
396 -user. The default behavior can be changed, using either the global settings in
397 -**Options --> Syndication** or the [feed settings][] under **Links -->
398 -Syndicated --> Edit**, so that posts by unfamiliar authors will either be
399 -attributed to a default author (instead of creating a new user account to
400 -attribute them to), or filtered out and not syndicated at all.
401 -
402 -One of the uses of this feature is to filtering posts by author: if you want to
403 -your blog to syndicate only the posts by one particular author from a feed that
404 -has several authors, you could do so by creating a user account with that
405 -author's name, adding the new feed(s), and then setting **Unfamiliar authors**
406 -under **Links --> Syndicated --> Edit** to "don't syndicate the post". Since
407 -only posts by authors that are in your database will be included, and only the
408 -author that you wanted posts from has been added to your database, this will
409 -filter out posts by anyone else on the feeds with that setting. (Similarly, you
410 -could set up FeedWordPress so that *all* the feeds are filtered by author by
411 -creating the set of users named after the authors you want to syndicate, and
412 -then setting the default behavior for *all* feeds at **Options -->
413 -Syndication**).
414 -
415 -If you need an author filter with more complex logic than this allows, you can
416 -always create a `syndicated_item` filter in PHP (see [Plugin API][]) that
417 -manipulates the `['author_name']` or `['dc']['creator']` elements of a
418 -syndicated item.
419 -
420 212 Template API
421 213 ------------
422 214 When activated, FeedWordPress makes the following functions available for use by
423 215 themes/templates:
@@ -431,9 +221,9 @@
431 221 * ``get_syndication_permalink()``: in a post context, returns the URI of
432 222 the permalink for this post *on the website it was syndicated from*
433 223
434 224 * ``the_syndication_permalink()``: in a post context, outputs the value
435 - returned by [``get_syndication_permalink()``][get_syndication_permalink]
225 + returned by ``get_syndication_permalink()``
436 226
437 227 * ``get_syndication_source_link()``: in a post context, returns the URI of
438 228 the front page (*not* the feed) of the website this post was syndicated
439 229 from
@@ -438,10 +228,9 @@
438 228 the front page (*not* the feed) of the website this post was syndicated
439 229 from
440 230
441 231 * ``the_syndication_source_link()``: in a post context, outputs the URI
442 - returned by
443 - [``get_syndication_source_link()``][get_syndication_source_link]
232 + returned by ``get_syndication_source_link()``
444 233
445 234 * ``get_syndication_source()``: in a post context, returns the
446 235 human-readable title of the website that a syndicated post was
447 236 syndicated from
@@ -446,15 +235,15 @@
446 235 human-readable title of the website that a syndicated post was
447 236 syndicated from
448 237
449 238 * ``the_syndication_source()``: in a post context, outputs the value
450 - returned by [``get_syndication_source()``][get_syndication_source]
239 + returned by ``get_syndication_source()``
451 240
452 241 * ``get_syndication_feed():`` in a post context, returns the URI of the
453 242 feed (*not* the front page) that this post was syndicated from
454 243
455 244 * ``the_syndication_feed()``: in a post context, outputs the value
456 - returned by [``get_syndication_feed()``][get_syndication_feed]
245 + returned by ``get_syndication_feed()``
457 246
458 247 * ``get_feed_meta($key)``: in a post context, returns the value, if any,
459 248 of the feed setting ``$key`` for the feed that this post was syndicated
460 249 from
@@ -460,25 +249,25 @@
460 249 from
461 250
462 251 By default, FeedWordPress also places a filter on the standard functions
463 252 ``get_permalink()`` and ``the_permalink()`` that substitutes the URI returned by
464 -[``get_syndication_permalink()``][get_syndication_permalink] for the URI
465 -generated by WordPress. This means that by default the permalinks listed on your
466 -website and in your newsfeed will link to the location of the posts on the
467 -source website, *not* to their location on your website. You can switch this
468 -behavior on or off at **Options --> Syndication** in the WordPress Dashboard.
253 +``get_syndication_permalink()`` for the URI generated by WordPress. This means
254 +that by default the permalinks listed on your website and in your newsfeed will
255 +link to the location of the posts on the source website, *not* to their location
256 +on your website. You can switch this behavior on or off at Options -->
257 +Syndication in the WordPress Dashboard.
469 258
470 -Plugin API
259 +### Plugin API ###
260 +
471 261 FeedWordPress creates five hooks through the WordPress plugin architecture that
472 262 you can plug in to using PHP WordPress plugins, to supplement ordinary
473 263 FeedWordPress behavior, or to filter posts according to criteria that you set.
474 264 The hooks are the action ``feedwordpress_update``, the action
475 -``feedwordpress_check_feed``, the action ``feedwordpress_update_complete``, the
265 +``feedwordpress_check_feed``, the action ``feedwordpress_update_complete``, the
476 266 filter ``syndicated_item``, the filter ``syndicated_post``, the action
477 267 ``post_syndicated_item``, and the action ``update_syndicated_item``.
478 268
479 -For more information, see <http://projects.radgeek.com/feedwordpress/api>.
269 +For more information, see <http://projects.radgeek.com/feedwordpress/use>.
480 270
481 271 License
482 272 -------
483 273 The FeedWordPress plugin is copyright (c) 2005 by Charles Johnson. It uses code
@@ -484,9 +273,8 @@
484 273 The FeedWordPress plugin is copyright (c) 2005 by Charles Johnson. It uses code
485 274 derived or translated from:
486 275
487 276 - [wp-rss-aggregate.php][] by [Kellan Elliot-McCrea](kellan@protest.net)
488 -- [MagpieRSS][] by [Kellan Elliot-McCrea](kellan@protest.net)
489 277 - [HTTP Navigator 2][] by [Keyvan Minoukadeh](keyvan@k1m.com)
490 278 - [Ultra-Liberal Feed Finder][] by [Mark Pilgrim](mark@diveintomark.org)
491 279
492 280 according to the terms of the [GNU General Public License][].
@@ -491,11 +279,11 @@
491 279
492 280 according to the terms of the [GNU General Public License][].
493 281
494 282 This program is free software; you can redistribute it and/or modify it under
495 -the terms of the [GNU General Public License][] as published by the Free
496 -Software Foundation; either version 2 of the License, or (at your option) any
497 -later version.
283 +the terms of the [GNU General Public License][] as published by the Free Software
284 +Foundation; either version 2 of the License, or (at your option) any later
285 +version.
498 286
499 287 This program is distributed in the hope that it will be useful, but WITHOUT ANY
500 288 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
501 289 PARTICULAR PURPOSE. See the GNU General Public License for more details.
@@ -500,10 +288,8 @@
500 288 WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
501 289 PARTICULAR PURPOSE. See the GNU General Public License for more details.
502 290
503 291 [wp-rss-aggregate.php]: http://laughingmeme.org/archives/002203.html
504 - [MagpieRSS]: http://magpierss.sourceforge.net/
505 292 [HTTP Navigator 2]: http://www.keyvan.net/2004/11/16/http-navigator/
506 293 [Ultra-Liberal Feed Finder]: http://diveintomark.org/projects/feed_finder/
507 -
508 294 [GNU General Public License]: http://www.gnu.org/copyleft/gpl.html
509 295