What is Custom Post Type in WordPress

Custom post types are a powerful feature in WordPress that allow you to go beyond posts and pages by creating different types of content for your website. They are particularly useful when you want your content to have a unique structure, to be displayed differently, or to be separated from regular posts or pages. 

WordPress, by default, includes several built-in post types like posts, pages, and attachments. It is important to understand what is custom post type in WordPress and to be able to create your own custom post types tailored to your specific needs, in order to easily manage and present content that doesn’t fit into the default post types. 

Understanding custom post types

In WordPress, your website’s content is stored in various post types. While standard posts and pages are familiar, custom post types offer a flexible way to present different kinds of content.

Definition and purpose

A custom post type is a powerful feature in WordPress that allows you to create unique content types tailored to your specific needs. Unlike the default post types such as posts and pages, a custom post type can be anything you want it to be—from a portfolio project to a product listing. These post types have their own set of parameters and can include custom fields and taxonomies, enabling you to structure your content efficiently and present it to serve your website’s goals.

For example, if you’re building a website for movie reviews, you might create a custom post type named “Movies” that includes details such as director, genre, and release date, which you wouldn’t typically find in a standard post.

Core vs custom post types

Core post types are the default types provided by WordPress, such as posts, pages, attachments, revisions, and navigation menus. Each core post type serves a particular purpose in the content management system and how your website functions.

On the other hand, custom post types are those that you or your developer create to add more diverse content to your site. They expand what you can manage beyond the capabilities of the core post types. For instance, by introducing a custom post type called “Testimonials”, you provide a structured way to display customer feedback that is separate from your blog posts or standard pages.

To successfully manage your content, it’s essential to distinguish between these two categories and utilize them effectively within your website’s architecture.

Creating a custom post type

When you decide to extend the capabilities of your WordPress site, creating a custom post type offers a tailored content entry system that fits your specific needs. This allows for more specific types of content beyond the default posts and pages.

Using functions.php file

To create a custom post type, one of your options is to add code directly to your theme’s functions.php file. You’ll need to write a function that utilizes the register_post_type() function. Here’s a basic example to get you started:

function create_movie_post_type() {



      'labels'      => array(

        'name'          => __('Movies'),

        'singular_name' => __('Movie'),


      'public'      => true,

      'has_archive' => true,

      'supports'    => array('title', 'editor', 'thumbnail'),



add_action('init', 'create_movie_post_type');

In this example, a new post type called “Movies” is created. The register_post_type function is crucial as it defines the attributes of your custom post type. The add_action with ‘init’ tells WordPress to run this function when it initializes.

Utilizing plugins

For those who prefer not to edit theme files or write code, using a plugin provides a more user-friendly approach. The Custom Post Type UI plugin is one of the popular choices for adding and managing custom post types. With this plugin, you don’t need to write any code – you can create a new custom post type using a straightforward interface.

Installing the Custom Post Type UI plugin

After installation, you navigate to the CPT UI section in your WordPress dashboard to add or edit post types.

Configuring settings for the Custom Post Type UI plugin

Remember, when using a plugin, always check for compatibility with your version of WordPress and support from the plugin developers.

Configuring custom post types

When working with custom post types in WordPress, it’s important to set them up correctly to suit your content needs. From defining the user interface to managing visibility and behavior, attention to detail during configuration sets the ground for smoothly running post types.

Setting labels and options

You’ll first deal with labels—the name your post type will display in the WordPress dashboard. The $args parameter is an array where you specify different attributes for your post type. For example:

'labels' => array(

    'name' => 'Books',

    'singular_name' => 'Book'


This code snippet names your post type ‘Books’ with individual entries called ‘Book’. There are many label options you can set to define how your post type will appear and behave.

Controlling visibility

You have control over how your custom post type is accessed on both the front and back end of your site. By setting the public argument to true or false, you determine whether users can view or not:

'public' => true,

If public is set to true, your post type will show up in WordPress admin dashboard searches and can be queried on the front end. If false, it lives behind the scenes.

Customizing supports parameters

The supports parameter in the $args array lets you define what features your custom post type will have. Here’s a basic example:

'supports' => array('title', 'editor', 'thumbnail'),

This line of code enables the title, editor, and featured image meta boxes within the editor for your custom post type. You can add or remove features as necessary based on what content your post type will hold.

Remember to finalize your custom post type set up with the register_post_type function, including all your configured options:

register_post_type('book', $args);

With these configurations in place, your custom post types will be tailored to your WordPress site’s needs, whether to catalog books, showcase portfolios, archive projects, or another unique requirement. Customizing the rewrite rules or setting has_archive to true or false can further refine how your content is managed and displayed.

Applying custom post types

Once you’ve created custom post types, showcasing them on your website and categorizing them properly can greatly enhance your content management system, turning your website into a powerful, well-organized engine.

Displaying posts on your site

You can display custom post types on your site by editing your theme’s files, using shortcodes, or plugins designed for this purpose. For a custom post type like ‘Products,’ you might want to include an archive page that lists all products. Here’s a simple way to make it happen:

  1. Generate a PHP file in your theme named archive-your_post_type.php.
  2. Use WP_Query to retrieve and list your custom post types.
  3. Customize the loop to display the custom fields that are relevant to your products.
  4. Ensure that single product pages (single-your_post_type.php) are properly set up to display individual items.

Implementing a portfolio item? You’d follow a similar process, but with a focus on the aesthetic presentation, possibly including image galleries or videos.

Incorporating taxonomies

Taxonomies help you organize your content efficiently. Broadly, there are two types you can work with:

  • Categories: For hierarchical organization, think of them as broad topics under which your custom post types can be classified.
  • Tags: Use these for more specific indexing of your content, as they help in describing the details of your posts.

To apply taxonomies to your custom post types, follow the steps below:

  • Ensure that when you register your custom post type, you associate it with the relevant taxonomy.
  • Edit the functions.php file of your theme to register new taxonomies or adapt existing ones.
  • When adding or editing a post, fill out the appropriate categories and tags to improve navigation and searchability on your site.

Combining custom post types, with thoughtful use of taxonomies offers a tailored experience to your visitors, making your content easy to find and engage with.

In conclusion, custom post types (CPTs) in WordPress are versatile and powerful tools that allow you to tailor your website’s content to better meet your specific needs. By creating custom post types, you can go beyond the default posts and pages to organize and display unique content such as portfolios, testimonials, or product listings. Understanding what is custom post type in WordPress enables you to enhance user experience, improve site organization, and provide a more engaging platform for your visitors. Embracing custom post types can significantly enrich your WordPress site, making it more dynamic and user-friendly.