OK, I need some help understanding taxonomies. I know what they are, I know how to make them, but I just don't what they're actually good for.

So let's say I have a custom post type for video game reviews, and I want to separate the reviews by game console. XBox 360, PS3, and WII. So, from what I understand this would be a good use for taxonomies.

I can make a taxonomy called "Video Games" and use the hierarchy feature for the "sub-categories" XBox 360, PS3, and WII.

OK, so I get that, but what's the difference between making the taxonomy and just using categories and sub-categories? What are the advantages of taxonomies?

2 Answers
2

Categories are taxonomies so using a custom taxonomy is no different then using categories, but if you have for example categories with Action, Arcade, Strategy ...

and a custom taxonomy console with : XBox 360, PS3, WI ...

then you can use that to show reviews for games that are Action games and that are for PS3 much easier.

and if you want you can extend that with a price rage taxonomy, meaning create another taxonomy named for example price_range with: under $50, $50 - $100, over $100 ...

then you can use all 3 taxonomies (categories, console and price range) to select just the games that are for XBox that are strategy games and cost less the 50$.

so basically in your case each taxonomy is a filter to select based on.

Update Per @gilgimech comment

If you use just categories for this structure then you would get something like this:

video game

ps3

arcade

game 1

game 2

action

game 2

game 3

strategy

game 3

game 1

xbox

arcade

game 1

game 5

action

game 6

game 7

strategy

game 1

game 2 .....

and that is without the price range , in this way you need to create the same categories over and over for each genre , each price range and each console, but if you use custom taxonomies the you would get something like this:

categories : arcade, action , strategy ..

console: ps3, xbox, wii ...

price range : under $50, $50 - $100, over $100

you only create each term once.
Now for example look at game 1 which is a game for both xbox and ps3 and its both action and strategy, so instead of giving it 4 categories (arcade and strategy under ps3 and arcade and strategy under xbox) you only give it two categories arcade and strategy and you set the two consoles as console terms

but it's still 4 terms each???
Yep but your structure is much cleaner. And just think about adding the price range to the category structure or you will have to go over all of the categories who are children of (video game ) meaning the consoles and you would need to create a new term for each price range for each genre sub category, but if you add a custom taxonomy you just add each range once and you are done.

so its not just a smaller list of categories in the category tree, its much easier to work with and filter by, and its less work to do.

Yeah, but that can just be done with categories as it is using the video game category as a parent. I still don't see the advantage of a custom taxonomies besides organization, or is that the point? Just to keep you categories list amount smaller?
–
gilgimechMar 11 '12 at 14:05

@gilgimech to keep terms in completely separate groups. Otherwise, following your games example, you'll have a Category with XBox 360, Action, PS3, Adventure, Shooter, Wii, etc. all inside of one category; you would rather want separate "Consoles/Platforms" and "Game Genre" categories, wouldn't you? Then you could display icons for platforms in a terms list on the front-end and do all sorts of crazy things to them.
–
soulseekahMar 11 '12 at 14:38

The whole idea is organization. Category is a taxonomy...as in it's registered just the same as you would a custom taxonomy, but it's registered by default. Same goes for Tags, it's just a registered taxonomy. Where custom taxonomies really shine is that you can apply them across post types, to multiple post types, etc. They really just allow for greater flexibility. It also allows you to separate your categorization, which is more than useful when you're doing advanced custom queries and such based on taxonomy data.