WordPress has some really serious flaws in its post management. It flips posts to private, it resets categories, it returns 404 for pages that are found. If you have a post up in one window and forget and open it into another window, the auto-saving will overwrite your changes, even after the item is published.
The most serious for me is how it handles using categories as part of the URI. I never cared for using a date, but just using the title provides no classification. A good compromise seems to me to use categories. However, lots of problems with WordPress and categories in the URI.
For instance, if you pick multiple categories, you have no way of specifying which category should be used to form the permalink. If you end up adding a category after the post is published, it’s just as likely to be assigned the permalink and you end up with multiple permalinks for the same post.
I am in the process of basically gutting WordPress’ management of permalinks and rewrite rules. What I’ve started doing is using the custom metadata fields for ‘categories’, and including these in the feeds. I need to add in ways of searching on these when people click the links so that all related posts are returned.
I’m then just using WordPress’ category feature as a way of picking a domain, or more properly, subdomain or major classification for the individual posts.
This makes sense: how you want a page organized on your site has little to do with how you want it categorized or ‘tagged’ when it comes to search and external groupings.
It’s been frustrating making these moves. I redirected several folders to ‘gone’, or 410. Google treats these are errors, rather than communication, and just keeps reporting them in the Webmaster tools as such. And it keeps showing thousands of pages as 404, yet they’re served just fine. I believe this has to do with the WordPress 404 errors.
Just as with the move to XHTML, this is a work in progress. I’m not sure I can encapsulate all the changes as plug-ins for others to use. I’ll try, but I may end having to do what one person suggested: grabbing my own copy of the source code for WP through source code control, and when a new release is made, doing compares between my modifications and the new source and adjusting accordingly.