Development
Wordpress page categories assignation
Since some certain version, Wordpress doesn’t allow assigning categories to static pages. This is likely a design decision (and probably outdated). However, according to this wordpress support request, it looks like the demand for that functionality is there.
And the infrastructures are already there too. Some themes show these pages as belonging to default ‘uncategorized’ category. Pages and posts are just stored in the same database table. Either wordpress is flexible to allow it done by incident, or wordpress developers have already thought about implementing it but later give up.
The first idea flashed in my mind is to reuse category functionality in blog posts. Although I’m aware of plugin for exactly the same purpose, IMHO writing a plugin for that is an overkill. Surprisingly, the change is incredibly simple, just about 10 additional lines.
Download
Applying patch
After downloading the patch (assuming it is placed in home directory), execute this command under Linux/Unix systems:
# patch -p1 -i ~/wp-2.3.x-page-add-category.patch
Your are recommended to add --dry-run option to patch command to test if the patch applies cleanly before really applying it. And it has never been stressed enough: backup!
Usage
Just treat static pages as if they are posts — assign categories to them as you wish.
Caveat
Since this is not a sophisticated change or plugin, it is still unable to show pages belonging to certain category via mouse clicks. If you want to automatically list available pages, you will need other tools out there.
2008-02-22 Edit: Add patch for 2.3.x, and updated Andy's plugin link.
The point of doing this as a plugin is that it doesn’t touch core code and doesn’t have to be re-applied with every update to WP – along with the possibility that it will not work with the next version core code.
I tried also, to make the plugin more flexible – you can define page only categories for example; you can re-order pages easily; mass assign categories; plus it comes with template tags to help people display their pages on a sidebar.
Hacking core code is OK for yourself but can be more than a problem for the less techie inclined – especially when 2.1 roles out and things break.
Absolutely what you said are true. My primary point is to illustrate how things are so much simpler if Wordpress developers were more inflexible when making design decisions, though I failed to mention that clearly.
I have done some minor changes to wordpress core during old days (1.5.x), only to find that patches doesn’t apply anymore during 2.0 series. Been there, done that, and fully aware of the consequences.