Skip to content

Using Custom Taxonomies and Custom Fields in WordPress Development

This course covers the key points of two of WordPress’s most powerful APIs for defining custom post data: custom fields (also called post meta), and custom taxonomies. The course introduces each tool, and then—since some problems can be addressed by either tool—covers practical guidelines for when to use custom fields and when to use custom taxonomies.

Before we dive in, an invitation. If you want additional resources about WordPress custom fields and taxonomies—and if you want to better understand WordPress development in general—have a look at our full “learn WordPress development” course, Up and Running. It’s the best guide to WordPress development out there.

The Best Way to Learn WordPress Development

Get Up and Running Today

Up and Running is our complete “learn WordPress development” course. Now in its updated and expanded Third Edition, it’s helped hundreds of happy buyers learn WordPress development the fast, smart, and thorough way.

Here’s what they have to say:

“I think anyone interested in learning WordPress development NEEDS this course. Watching the videos was like a bunch of lights being turned on.” -Jason, WordPress developer

“Other courses I’ve tried nearly always lack clear explanations for why WordPress does things a certain way, or how things work together. Up and Running does all of this, and everything is explained clearly and in easy-to-understand language.” -Caroline, WordPress freelancer

1. Creating WordPress Custom Taxonomies

WordPress Custom Taxonomies: How and Why to Create Them

Key Point: Flat and Hierarchical Taxonomies

A WordPress taxonomy is a way of organizing WordPress posts.

A WordPress taxonomy is a way of organizing WordPress posts into groups. Taxonomies come in two flavors: flat and hierarchical. Elements of a hierarchical taxonomy can be members of one another: for example, “Romantic Comedies” being a member of “Comedies” inside a “Genre” taxonomy; flat taxonomies don’t have this feature.

Tags are WordPress’s default flat taxonomy, and Categories are WordPress’s hierarchical taxonomy—but you can also register custom taxonomies of either type.

Key Point: Basic Use of register_taxonomy()

To create custom taxonomies by hand, you use register_taxonomy(), which you hook into WordPress’s init action hook.

A simple, but complete, use of register_taxonomy() looks as follows:

add_action('init', 'our_awesome_registration_of_taxonomies');
function our_awesome_registration_of_taxonomies() {
    $args = array( 
        'hierarchical' => true,
        'label' => 'Awesome Taxonomy',
    );
    register_taxonomy( 'awesome_taxonomy', array( 'post', 'page', 'awesome' ), $args );
}

This creates a hierarchical custom taxonomy whose display name is “Awesome Taxonomy,” whose slug is awesome_taxonomy, and which applies to the post, page, and awesome post types.

2. Creating WordPress Custom Fields

How to Create and Use WordPress Custom Fields

Key Point: The Role of Custom Fields

Custom fields, also called post meta, are simple stores for data about a WordPress post.

Custom fields, also called post metadata or post meta, are simple stores for data about a WordPress post. Unlike custom taxonomies, they don’t help organize multiple WordPress posts. Rather, they are post-level data about individual posts themselves.

Custom fields have a huge number of uses. For example, an e-commerce solution like WooCommerce uses custom fields to give its “Product” posts most of their important data—like price, shipping weight, quantity in stock, and so on. Similarly, an SEO plugin like Yoast stores the post-level data you define—such as a focus keyword—as custom fields.

In each case, these pieces of post metadata enrich individual posts in crucial ways, without organizing or grouping posts like a taxonomy would.

Key Point: Functions for Working with Post Metadata

To display and manage stored post metadata, you use a set of PHP functions. Perhaps the most important is get_post_meta(), which looks as follows:

get_post_meta( $post_id, $key, $single );

A sample use of this function, inside the Loop, to get a piece of post meta called mood as a single string, would look as follows:

$post_mood = get_post_meta( get_the_ID(), 'mood', true );

You could then display this string wherever you like with echo $post_mood;.

add_post_meta(), update_post_meta(), and delete_post_meta() are also important functions for working programmatically with custom fields inside the PHP logic of a plugin or theme.

Key Point: Creating Custom Metaboxes

Custom metaboxes let users easily modify values for specific custom fields in the WordPress post editor.

Custom metaboxes are what let you or other users easily define or modify values for specific custom fields inside the WordPress post editor.

WordPress’s default interface for creating metaboxes is complicated to use, and a number of good alternative solutions exist. We recommend two developer tools, both on GitHub: Human Made’s Custom Meta Boxes project, or CMB2 by WebDev Studios.

A number of less technical solutions exist as well, such as the Advanced Custom Fields plugin. These are less feature rich than the developer solutions, but simpler to use in general.

3. Knowing When to use Custom Fields and When to Use Custom Taxonomies

Organizing Your WordPress Data: Understanding Custom Taxonomies vs Custom Fields

Key Point: Custom Fields are Best for Unique, Potentially Sortable Data

The article uses the example of a movie listing and review site, with a large number of “Movie” posts. Should a given movie’s “Release Date” be a custom taxonomy or a custom field?

The article concludes that the flexibility of a custom field makes it the best choice. You might just create a hierarchical taxonomy like 1990s > 1995—but this is very stiff and inflexible. What if you someday decide that you want to specify the month of release as well? That leads to a very strung-out taxonomy, with hundreds of entries like 1990s > 1995 > October.

A custom field, by contrast, can be unique and sortable. Using a custom field, you can specify that a particular movie was released on Thursday, July 20, 1995—a unique date that no other movie shares. What’s more, you can later sort by that custom field value to retrieve all movies released on a Thursday, or on the 20th of the month.

The same logic suggests custom fields for other types of data that can take a large number of values, and that are best used as a method to sort through posts rather than as a way to organize them. “Price” is another excellent example, and is always handled as a custom field rather than a custom taxonomy. Similarly, a video game website that allowed ratings like “9.8/10” should store those ratings as a custom field—rather than as a taxonomy of dozens of different decimal ratings—and allow users to sort posts by rating. This sorting functionality will have to be written by hand, since there is no default way to sort posts by a given custom field value.

Key Point: Custom Taxonomies are Best for Non-Unique, Organizing Data

Taking again the example of a movie review site: if the site’s ratings system is instead “Thumbs Up/Thumbs Down,” should this be handled with a custom taxonomy or a custom field?

This is best handled as a custom taxonomy. Because there are a small number of possible values (two) into which many posts are organized—rather than, as with “Release Date,” many potentially unique values which posts might take on—a taxonomy is appropriate.

Furthermore, the taxonomy should be hierarchical: even though there will be no “subcategories,” the taxonomy more closely resembles two well-defined “buckets” or “categories” that posts go into than it resembles an arbitrarily large set of “tags” that might help organize those posts.

Using this ratings taxonomy will make it easy for the site to have, for example, a page that lists all “Thumbs Down” movies, since WordPress can make taxonomy archive pages by default. (When you view all posts of a given category on a WordPress blog, you’re viewing an archive page for the Category taxonomy.) This removes the need to program any particular method of “sorting” the two values, which would need to be done by hand if this were a custom field.

Now You Know Custom Taxonomies and Custom Fields!

Custom taxonomies and custom fields are two of the primary technologies that make WordPress a flexible and powerful technical system. After this introduction, you should have a good grounding in the fundamentals of both tools, as well as a good intuitive sense of which situations call for one and which call for the other.

Thanks for reading, and as always we’d love to hear your questions and comments!

1 thought on “Using Custom Taxonomies and Custom Fields in WordPress Development”

Leave a Reply

Your email address will not be published. Required fields are marked *

Or start the conversation in our Facebook group for WordPress professionals. Find answers, share tips, and get help from other WordPress experts. Join now (it’s free)!

Most Searched Articles

Best JavaScript Libraries and Frameworks: Try These 14 in 2024

In this post, we look at the best JavaScript libraries and frameworks to try out this year. Why? Well, with JavaScript being available in every web browser, this makes it the most accessible programming language of ...

25 Best Free WordPress Themes (Responsive, Mobile-Ready, Beautiful)

If you're looking for only the best free WordPress themes in the market for this year, then you're in the right place. We have more than enough such themes for you right ...

12 Best WordPress Hosting Providers of 2024 Compared and Tested

Looking for the best WordPress hosting that you can actually afford? We did the testing for you. Here are 10+ best hosts on the market ...

Handpicked Articles

How to Make a WordPress Website: Ultimate Guide for All Users – Beginners, Intermediate, Advanced

Many people wonder how to make a WordPress website. They’ve heard about WordPress, its incredible popularity, excellent features and designs, and now they want to join the pack and build a WordPress website of their own. So, where does one get ...

How to Start an Ecommerce Business: Ultimate Guide for 2024

Is this going to be the year you learn how to start an eCommerce business from scratch? You’re certainly in the right place! This guide will give you a roadmap to getting from 0 to a fully functional eCommerce business. ...