I discovered the hard way, that if you have built an audience subscribed to a custom rss extension, you might need to think twice before upgrading your WordPress install. WordPress has changed the way it handles the feeds from the site. The old /wp-rss2.php file is still there, but frankly that is an ugly extension. On this and my other sites I have always used a rewrite so that people could pull the RSS feed at mwgblog.com/rss.xml. Turns out WordPress 2.0 breaks this. Buried somewhere in the permalink building code it causes a 404 error to be posted to the header breaking aggregators. Interestingly it will display in the browser and only seems to effect rewrites to the feeds. All the other rewrites work just fine. A few other people have posted in detail about this problem. Of course, you find this out once you have already done the upgrade. I don’t know that it is a high priority fix; 2.0 is new and they have bigger fish to fry. If you are a php expert, feel free to dig into the classes.php file, my guess is that is where the problem lies.
So how did I fix it? It’s complicated. I have a script that scrapes the wp-rss2.php file and posts it to a static xml file. I then changed the rewrite to point /rss.xml to the static xml file. That is a pain the ass way of doing it, but it works.
I am still hopeful someone with PHP prowess will care enough to find the real fix.
Michael – I’ve been spending the weekend installing WordPress 2.0. It’s my first time using it, so I had no custom code for it to break, but in poking around all the plugins, I came across several that won’t work because of this same rewrite problem. From what I can tell, the WordPress crew decided to circumvent mod-rewrite and let WP handle rewrites internally. At least, that’s the best understanding of the issue this non-coder can come up with. Suffice to say that anything that depends on Apache for URL re-writes is gonna break. Tough luck, eh?