If you've got a WordPress blog and use Feedburner, you may notice that the posts stop updating. It's often due to a limitation on Feedburner that stops updating if your feed exceeds 512K. I wrote a simple plugin called Excerpt Old Posts that fixes that problem by showing Full Text for recent posts and Summary for older posts.
I run a podcast website (Herding Code podcast) on WordPress. The feed's probably the most important part of that site, since it's how people subscribe, feeds into iTunes and other podcast directories, etc. We put some work into the show notes, so I definitely want full text for each post in the feed. For users who just find the podcast, I want them to be able to find all our episodes in iTunes or other feed sources. I want a full feed - all text for all the posts.
We use Feedburner for some advanced feed management features, especially
- Podcast support (it handles all the funky iTunes tags)
- Tracking and analytics
- Ability to change hosting without breaking the feed
- Probably some other stuff I'm forgetting about - I've been using Feedburner for a long time
The Feedburner 512K feed limit
Unfortunately, Feedburner's got a limit of 512K per feed. If you exceed that limit, the feed just stops updating. I've run into this several times - I'd post a new show, and it wouldn't show up in Feedburner. I'd go through the standard Feedburner troubleshooting steps:
- Manually ping Feedburner to make sure it knew there was something new
- Check the Feedburner Troubleshootize page, which would lie to me tell me my feed was "quite healthy."
- Eventually I'd give up and just Resync the feed (the so-called nuclear option)
Finally, when I'd attempt to Resync, Feedburner would tell me what was wrong - the feed was too big: "Feed Error: Your Feed Filesize is Larger than 512K"
There are two problems here:
- Feedburner has a feed size limit at 512K (note - just the textual feed, this doesn't count the linked media like podcast MP3's)
- They don't tell you when you exceed that limit
No compliants on the first problem, Feedburner probably needs to set some limits on feed size or they'd grow like crazy. The big problem is that there's no notification, even in the admin interface, until you try to resync the feed.
My first (lame) solution: Compromise on quantity or quality
If you search around, you'll see that's the common suggestion - go in to to the Reading settings and either change the feed to show a summary for each post, or limit the number of items in the feed.
That solves the problem, but it doesn't make me - or our listeners - happy. As I explained above, everyone wants the Full Text for new content, and new subscribers want to see all shows listed when they subscribe.
What I really want is a feed that has Full Text for most of our newest posts and Summary for our old posts. That lead me to a slightly better solution.
My second (slightly less lame) solution: Hack around in feeds-rss2.php
After a while, decided to dig around and find out where the feed was actually written out. I found that my RSS feed was being written out in feeds-rss2.php, and wrote some ugly but workable code that runs a simple counter and switches from full posts to summaries after the counter hits a threshold. If you need that modified feeds-rss2.php for some reason, it's here. I hope you don't use it, though, because there's a problem: the next time I updated to the newest version of WordPress, my feed broke again.
My third (best) solution: Wrap this logic up in a plugin
Of course, the problem with tweaking internal code is that it gets overwritten when you update. The right way to extend WordPress is to create a plugin. That way your changes are all wrapped up nicely in a way that survives updates. And, also nice, the changes are easy to share with others.
This was my first WordPress plugin, and I'll save that process for another post. The important thing is that the plugin's got the Works On My Machine certification and is up in the WordPress Plugins Directory, titled Excerpt Old Posts. Yes, that's a kind of boring name.
It's pretty easy to use:
Add the Plugin in the WordPress Plugin settings:
In your admin settings, Go to Plugins / Add New. Click on Search and type in "Excerpt Old Posts"
Install the plugin and activate it.
Actually, that's really all you have to do if you want the default number of full posts (50) in your feed. You can check your feed if you'd like - you should now see that the 50 most recent items are showing Full Text, and the older ones are just showing the short Summary.
Changing the number of full posts shown in your feed
There's just one new setting available - the number of Full Text posts you'd like in your feed. Rather than adding a new settings page, I extended the Reading page. It seemed simpler to me - if I end up adding more settings I'll set up a new settings page for the plugin. You can see the new setting below:
That's it, hope you like it. If you have problems, I'd recommend using the dedicated forum for this plugin rather than the comments on this post, as you're more likely to get a timely response.