WordPress Custom Post Types and Taxonomies: Introduction Redefined

Last Updated at : July 25, 2017 By - Usama Muneer | 2301


    Out of the box, WordPress has several post types already defined. The most common ones we interact on the daily basis are posts and pages. So let’s first take a look at what posts and pages are, because this will be instructive when we create our own custom post types.

    WordPress Posts

    POSTS are what you normally create on WordPress. They are organized as reverse chronological order so that the last post goes first in the index and the rest you can see is below that. They are non-hierarchical, means that posts may not have a parent/child relationship. Instead posts are created and managed by the Authors & they have categories & tags. In other words, Every post must have a category and some tags.

    WordPress Pages

    In contrast, PAGES are single individual items. They can be displayed in parent/child relationship & we usually see this on the main menu. Pages don’t have indexed pages and they don’t have categories & tags. Only way to get to them is through a direct link that’s why they usually appear on the main menu.

    POSTS are normally used for some recently updated items, such as some article or news update etc. whereas, PAGES are static content, which rarely updates.

    Custom Post Types

    Now let’s dig into the Custom Post types. When you create a custom post type, you can make them act like either a post or a page & which ever you choose. That custom post type will inherit all the features of it. They can be organized by categories, tags or custom taxonomies. They have separate index page and can have custom index template. They can have all of, or a combination of, or none of the standard features. Custom post types can be called anywhere using a custom loop.

    Before digging deeper into the custom post types, let’s first understand what Taxonomy means.

    Taxonomy is the schema of classification. It could be defined as the organizational system that allows us to relate one item with another item with other similar items in hierarchical and non-hierarchical groups


    Let’s understand it by a simple real life example;

    In your Wardrobe, you have your shirts in one section, your jackets in another, your pants in another and so on. But whats the benefit of using this technique? Let’s say you want to find some pant, you just go to the section containing your pants only. Simple enough? These are hierarchical system or categories, a type of taxonomy. And every item have some tag on it, like its size, color and so on, these are named as tags, which are non-hierarchical.

    WordPress Taxonomies

    In WordPress, we have two default taxonomies, that you normally use all the time. The first one is category, every post must have a category. They are displayed as hierarchical system, so that means we can have parent/child relationship. Moreover categories are the main organisational method within WordPress.

    On the other hand, tags are optional. You don’t have to use them, but you can use them whenever you want, they are non-hierarchical, meaning that they are not related to one another & they are considered as the secondary organizationals method in the WordPress.

    When you’re creating custom taxonomies, you can either create hierarchical(category) or non-hierarchical(tags). These taxonomies can be applied to one or several post types including posts. Custom taxonomies can have custom index and archive template. These are usually displayed along-side categories & other meta content. Custom taxonomies allows for more advanced Organization of content.

    Creating a new Custom Post Type & Taxonomy

    So, When you’re creating a new custom post type or taxonomy, the very first question arises in your mind is where should you write your code in WordPress theme structure.

    Well there are two options, one is to create a simple plugin, & other is to write it into your functions.php. Now, there are benefits and drawbacks of both, such as,

    A Plugin can be turned on and off, and it could be specific to each theme you’ve created. This technique is used in most of the cases.

    Whereas, on the other hand, if you write your custom post type and taxonomy code in your theme directly, it is only for custom builds & its content is theme dependent & allows for some advanced functionality.

    It’s completely one’s individual choice of how to use it in your theme. In the next article I’ll explain how to create custom post type & taxonomy using both described techniques & we’ll find out more about custom post types and taxonomies.

    If you have any questions, write me a comment below or find me at twitter.

    blog user
    Usama Muneer

    A web enthusiastic, self-motivated & detail-oriented professional Full-Stack Web Developer from Karachi, Pakistan with experience in developing applications using JavaScript, WordPress & Laravel specifically. Loves to write on different web technologies with an equally useful skill to make some sense out of it.

    Related Posts

    PHP is one of the most valued and accessible server-side language, mostly used for creating websites. With a faster turnaround time and enhanced security features, PHP has become one of the most preferred choice for website development by website developers.

    Lots of developers have been a fan of the short arrow function usage since their addition to programming languages. In JavaScript, it has helped make coding functions/closures more concise.

    Imagine you have a scenario where you need to add multiple actions to your Laravel Notification where you can add as many as button components with different URLs.

    Importing Excel files come handy when you’re building some large scale inventory kind of an application where you need to import set of data from CSV or excel files. In this short tutorial, we’ll go through on importing excel files with Laravel & look on for some crazy hacks and tricks in between.