What are “custom taxonomies”?
WordPress, with version 2.3, introduced the concept of Tags. As described by Wikipedia, a tag is “a non-hierarchical keyword or term assigned to a piece of information”. This meant WordPress had a hierarchical way of classifying information (categories), and a non hierarchical way of classifying information. As far back as in 2006, people were discussing the fact that tags are not categories.
The issue is that WordPress calls them both “taxonomies”, when they’re actually not. They’re not, because the word taxonomy, as described in another Wikipedia page, assumes a hierarchy of sorts. Now, with version 2.8, WordPress introduces (or actually gives more easy access to the already available backend for) custom taxonomies.
These custom taxonomies can be either non-hierarchical (eg. “tag” like) or hierarchical (eg. “category” like), but for now only the non-hierarchical taxonomies benefit from the smooth integration. These taxonomies are more “real” taxonomies though, as they add a level of hierarchy to the tag structure.
Let me give you an example: you could have a People and a Places taxonomy. Now, when you write a new post, you decide to add a keyword in the People taxonomy. By doing that, you’re saying that it’s a keyword (or tag, if you want) of the type People, so it is hierarchical in a way. But it also makes the keyword that much more informative, as it adds another layer of information.
For those more visually inclined, my buddy Roy Huiskes helped me by making a graphical explanation of the subject:
Now as said, WordPress 2.8 gives more easy access to these new “non-hierarchical” taxonomies, but I wanted to make it even easier. Hence, my newest plugin: Simple Taxonomies. It takes care of creating the taxonomies, making sure their URL rewrites work (eg. http://example.com/people/joost/), creating widgets for it, allowing you to add it to the end of posts and excerpts, and even comes with a set of template tags for tag titles and descriptions.