WordPress Category Admin Overhaul

The WordPress category system does a great job for most people, however if you have over 1200 categories like Dave Powers’ New Music Nation web site, the standard admin screens for WordPress categories just aren’t going to cut it for you.

Dave got in touch with me and explained the problems he was having. They had addressed the front-end issues, but the volume of categories he had were causing the category administration pages to fail to load.

Project Goals

Create an alternate interface for managing categories in the WordPress administration screens – one that can handle a as many categories as you can throw at it.

Timeline

Dave first contacted me in mid-November 2006. We discussed the project via e-mail, and signed off several days later to begin development at the end of November. I actually was able to begin the project a little earlier than expected, and delivered the completed project at the end of November.

Deliverables

An alternate administrative interface for managing WordPress categories.

Process

Dave contacted me and we discussed the project via e-mail. He basically told me what his end goal was, and left it up to me to implement in the manner I thought best.

I investigated the way the existing category admin worked on the back end and identified the areas where a large nested category list would cause problems. Then I designed changes to relieve these specific issues.

Unfortunately, it wasn’t possible to use existing hooks to make the necessary changes so I implemented my changes altering as little core code as possible.

The basic change was to show only one level of categories at a time, and no more than 50 categories in the list – paging the list where needed. This needed to be done in both the list of categories and also for the “parent category” drop down list category in the category add/edit form.

End Result

I mailed the modifications as replacement and additional files, along with installation instructions to Dave while he was on vacation.

Dave returned from vacation and contacted me a few days later. He explained that he didn’t have experience uploading files like this (even with the instructions) so we expanded the project for me to also do the installation and configuration of the new admin screens on his server.

Once I had everything working as needed for Dave, I decided to see if I could add a few hooks to WordPress to allow my modifications to work as a pure plugin (without requiring modification of any WordPress core files).

I identified the places where I could add a few simple hooks and created a patch accordingly. This patch was accepted and included in WordPress 2.1.

With Dave’s blessing, I’ll be packaging this functionality up as a plugin for WordPress 2.1.

Credits and Disclaimers

Thanks to Dave Powers for having a great attitude towards Open Source and allowing (encouraging actually) the work done for him to be published so that others could benefit as well.

Thanks to Ryan Boren for reviewing and accepting the WordPress patch required to allow this to work as a pure plugin.