Tutorials UPDATED: 19 January 2021

Create WordPress Custom Post Types Using a Plugin

Tassos Antoniou

10 min read
Image for Create WordPress Custom Post Types Using a Plugin

Have you ever heard of WordPress Custom Post types but not been sure what they are? Or perhaps you’ve heard of custom post types but don’t know how to use them in WordPress. In this series of articles we’re going to be removing the mystery that surrounds WordPress custom post types and in doing so explain how you can leverage these in a wide variety of ways on your website.

In this initial article on WordPress custom post types we’ll explain what they are and then move onto showing you how you can create your own custom post types using a popular plugin. Let’s get going!

What are WordPress Custom Post Types?

If you’ve ever built a website using WordPress you’ll probably know that the core elements in any WordPress website are comprised of content in the form of Pages and Posts. These are all given the label ‘posts’ and are stored in the wp_posts table of your database. In addition, other elements such as Attachments, Revisions and Nav Menus are also referenced with the ‘posts’ label which is also stored in the wp_posts table of your database. The way these elements are distinguished is by carrying a different posts type value under the post_type column of the wp_posts table. A simple post has a post_type value ‘post’ , a page is a ‘page’ type, an image is an ‘attachment’ type and so on.

Creating your own post type used to involve extensive coding with a number of hacks needed to achieve the desired result. Things have come a long way in a short time though and since WordPress 2.9 it’s got incrementally easier to create custom post types which allow you to really make the most of WordPress as a fully featured CMS.

When Do You Need A Custom Post Type

There are countless reasons why you might want to create a new custom post type. Simply put, if you can’t display content in a way you want on your website because the default post types (pages and posts) don’t include the required features then a custom post type might be the answer.

For example, you might be running a book review website. Whilst there is a lot you can achieve with the default post types (pages and posts), they won’t give you any fine grained control over this specific type of content. With custom post types you’re free to add in features that can help your website users navigate the content such as adding in ratings and making it searchable by author and so on. This is better than trying to ‘force’ the standard post and pages in WordPress to conform to your unique requirements.

For the purposes of this series of articles we will imagine we want to create a ‘food recipe’ section on a website. We’re going to segregate recipe content from the rest of our website content by introducing a custom post type cpt-recipes. The methods we’ll run through can be applied to a wide range of other custom post types and you’re of course free to pick and choose the elements that will work for your specific website custom post type.

Create the Custom Post Type Using a Plugin

Coding a custom post type by hand is perfectly possible (we’ll run through this in later articles) but if you’d rather not get involved with code then a great solution to use is the plugin Custom Post Type UI by WebDevStudios.

custom post type plugin

This plugin allows you to quickly register (i.e. create) and manage custom post types and taxonomies for your website with an easy-to-use functional interface. After installing and activating you can view the full list of options available under the ‘CPT UI’ menu item that will appear in the admin menu.

To get started creating your custom post type, click on the ‘Add New Post Type’ tab. Now, fill in the Post Type Slug, Plural Label and Singular Label (as shown above). Click ‘Add Post Type and that’s it!

edit your custom post type

Once you’ve done this, find your new custom post by clicking on the ‘Edit Post Types’ tab. Under the Basic Setting section you’ll see a ‘Additional Labels’ section where you can add a range of additional labels for your custom post type. There are a LOT of fields to fill in but fortunately the plugin has a handy ‘Auto-populate’ feature (again, shown above). Click this and a huge amount of the work will be done for you. You’re of course free to modify these if you need.

The Custom Post Type UI plugin contains all the parameters of the register_post_type() function that are described in the official WordPress documentation. These are necessary for your custom post type to function properly. Useful labels under each field explain what each item is for.

Note: If you want to create posts with a hierarchical structure you would turn the ‘Hierarchical’ option to ‘true. This alone however isn’t enough. You’ll need to head to the ‘Supports’ section (scroll down to the bottom of the Post Type setup page that you’re on) and check the ‘Page Attributes’ checkbox. This means the ‘Parent’ option will be inherited from the page structure.

Once you’ve made any updates to the labels and settings for your new customs post make sure you hit ‘Save post type’ to save your changes. You’re now ready to add content to your new post type. You can return and edit the created post type anytime in the ‘Edit Post Types’ tab if needed.

Additional Options

There are quite a few options you can have a play with including things like customizing your new custom post types menu position and associated icon. To change the menu position for example, you need to enter a number into the ‘Menu Position’ field. Take a look at the possible options below:

0 : at the very top
5 : below Posts
10 : below Media
15 : below Links
20 : below Pages
25 : below comments
60 : below first gap in menu
65 : below Plugins
70 : below Users
75 : below Tools
80 : below Settings
100 : below second gap in menu

You can also change the menu icon by either uploading your own to the Media Library or by adding in the class name of an official Dashicon icon provided by WordPress. You can see the available icons here

Adding Taxonomies

One of the key benefits of using a custom post type is the ability to better control how data is ordered. A good starting point for this is to add custom taxonomies. Let’s take a look at how we can add custom taxonomies that will allow us to group recipes in categories of our own choosing.

To begin, click on ‘Add/Edit Taxonomies’ in the CPT UI sub menu. Then, add in a new Taxonomy Slug, Plural Label and Singular label and (importantly) select the Post Type you want to associate this new Taxonomy with. In our case this will be our cpt-recipes post type.

Click the ‘Add Taxonomy’ button and you’re done. Head to your custom post type and you’ll see a new item (in our case ‘Cuisines’) listed in the sub menu. Click this and you can now add your own ‘Cuisine’ categories.

Sometimes it can get hard to keep track of what is what when setting up a new (or multiple) custom post type(s). Fortunately the CPT UI plugin provides a very useful summary table that can be found by going to CPT UI > Registered Types/Taxes where you can view all the custom post types you’ve created along with the associated taxonomies and other useful info.

Displaying Your Custom Post Type Content on the Frontend

Before testing your new custom post type out, it’s best to add some content (otherwise it’ll be much harder to see what’s going on!). In our case this means adding some cuisine related categories and some recipe posts.

If you head to the ‘Menus’ menu from within your Admin area, you’ll see that your new custom post type is listed along with your new Category.

In other words, we are already ready to show a single recipe page or a view of all recipes under the same cuisine taxonomy.

What about showing an archive with all the recipes? To accomplish that go back to your custom post type settings and make sure that the related options are set correctly as shown in the image below.

Now you’re ready to add the menu item for the archive view. Go to the menu structure and create a custom link:

The link text could be “Recipes”. For the url if your permalinks are set to ‘Plain’ then you should use “/?post_type=YOURPOSTTYPENAME” which in our case is ‘cpt-recipes’. If set to ‘Post name’ your link’s URL should be “/cpt-recipes”.

Add the menu item and go to your website and click the ‘Recipes’ (in our example) menu link. You should now see all the recipe posts in an archive view.

There is all manner of ways you can view your new custom post types. Each custom post type is fully integrated into your WordPress website in the same way the default ‘posts’ and ‘pages’ are. As such you can treat any custom post type in the same way you would a post or page.

Custom Post Types and Widgets

Frustratingly, custom post types are not added to WordPress widgets. A good way to overcome this is to use a post widget plugin like the Ultimate Posts Widget.

Once the plugin it is installed and activated, a new widget will be available in the Appearance > Widgets area called ‘Ultimate Posts’. If you add it to a position (e.g. the footer area) you will be able to configure this via a range of options provided by the plugin.

To display your custom posts head to the Filter tab where you’ll be able to choose the post type you created. You can then modify how this displays in the Display tab as you would for any other post type.

Save your settings and then head to the front end of your website to see how things look.

view your custom post types

Conclusion

Custom post types are one of the major features that helped propel WordPress to become the most popular Content Management System available today. The ability to display different types of content is a huge help and allows you to create a truly bespoke website for your needs. The CPT UI plugin offers an incredibly easy way to create custom posts types. It is genuinely a quick process so if you’ve always wanted to create a custom post type but not known how then we hope this article has provided the info you need to give it a whirl.

And if you’re feeling adventurous and want to manually code your own custom post types then check out our article ‘Create WordPress Custom Post Types Manually‘ to find out how!

Host your WordPress Website with Pressidium!

View our price plans

Host your website with Pressidium

60-DAY MONEY BACK GUARANTEE

SEE OUR PLANS

Do you like this article?

Subscribe to our blog and get awesome WordPress content straight to your inbox.

SUBSCRIBE

OUR READERS ALSO VIEWED:

WordPress Custom Post Types – Taking It Further

Take your ability to code your own WordPress Custom Post Types to the next level in this step-by-step tutorial.
Tassos Antoniou
Tassos Antoniou
9 min read

Create WordPress Custom Post Types Manually

Always wanted to code your own WordPress custom post types but not been sure where to start? We show you how in this step-by-step tutorial.
Tassos Antoniou
Tassos Antoniou
8 min read

33 Amazing Web Safe Fonts & Why You Need Them!

When designing a website it's recommended you use Web Safe Font for your designs. We've got 33 of the very best Web Safe fonts you can use!
Ioanna Aravani
Ioanna Aravani
12 min read

Create a Custom Navigation Menu in WordPress Without Using Plugins

Have you always wanted the ability to create a new menu in a non-standard location on your WordPress website? Find out how in this article!
Tassos Antoniou
Tassos Antoniou
10 min read
SUBSCRIBE