Pods: An easy way to create WordPress custom post types, custom fields & taxonomies

August 10, 2020 37 comments

WordPress custom post type fields plugin

This week I’ve been trialling the free Pods WordPress plugin. With over 50,000 users, it’s a popular way to create custom content in WordPress. You can use it to create WordPress custom post types, custom fields and custom taxonomies – basically, everything you need to store extra data in WordPress.

Pods are very relevant to us at Barn2 Media because our Posts Table Pro and WooCommerce Product Table plugins can be used to show custom content. We’re always looking for more customer-friendly ways to create the content that can be displayed using our plugins. Pods makes this nice and easy.

This is the complete guide on how to use Pods to create WordPress custom post types, custom fields and taxonomies. I’ll show you how to create each of these extra content types, and then how to display them on your website using our table plugins.

Posts Table Pro
Create your own custom content today
WooCommerce Product Table
Create your own custom content today

In this article

What is Pods?

Pods is an all-in-one plugin for creating custom content types and fields. It’s developed and supported by a team of well-known WordPress experts.

I’ve obviously had my head in the sand for the last 4 years because according to the plugin changelog, Pods was released back in 2014 – and it has been updated every few months since then. For some reason, I only heard of it recently when customers started asking if our plugins work with Pods.

I did some investigation and discovered that lo and behold, Pods is a fantastic way for creating the extra data that people need to display using our WooCommerce and WordPress table plugins.

Download Pods

What are the alternatives?

There are various other plugins for creating WordPress custom post types, fields and taxonomies. These include:

  • Advanced Custom Fields – Excellent for creating custom fields. There’s a free and a Pro version. If you just need to create custom fields, then ACF is ideal. But if you want custom post types and/or taxonomies too, then Pods is a better all-round plugin.
  • Toolset – This plugin is well-supported and from On the Go Systems, the company behind WPML. You can use it to create custom post types, fields and taxonomies. I recommend Pods in this article because it’s just as good as Toolset and completely free, but Toolset is a valid option too.
  • Custom Post Type UI – A free plugin for creating WordPress custom post types and taxonomies. I’ve used this a lot and it’s a good option, but use Pods if you need custom fields too.

How to create a WordPress custom post type with Pods

First, I’ll show you how to use Pods to create a WordPress custom post type. I’m assuming that you have already installed the free Pods WordPress plugin. If you haven’t done that yet, do it now.

  1. Add New WordPress Custom Post Type PluginNavigate to Pods Admin → Add New → Create New.
  2. On the ‘Add New Pod’ screen, choose ‘Custom Post Type’ from the ‘Content Type (like Posts or Pages)’ dropdown.
  3. Add a Singular and Plural label. This is how your WordPress custom post type will appear in the admin. For example, if you’re creating a ‘Documents’ custom post type for a WordPress document library, then the Singular Label would be ‘Document’ and the Plural ‘Documents’.
  4. Click ‘Next Step’.
  5. The next screen lets you add custom fields to your custom post type. We’ll look at this in the next section. For now, click on the ‘Advanced’ tab and scroll down to the ‘Supports’ and ‘Built-in Taxonomies’ sections. Tick any extra fields that you want to be available for your custom post type.
  6. Click ‘Save Pod’ and you can start adding custom posts straight away!
Edit Pod screen with WordPress custom post type link

Adding posts to your WordPress custom post type

Add WordPress custom post type Pods
‘Add New’ custom post screen with default fields

If you look at the left of the WordPress admin, you’ll see a new link with the Plural Name you just added. To add a post to the custom post type you just created, go to [custom post type Plural Name] > Add New in the WordPress admin (e.g. Articles > Add New if your custom post type is called ‘Articles’)

The ‘Add New’ screen for your custom post type will look like my screenshot, plus any extra fields that you ticked in the Step 5, above. Add all the data for your custom post and click ‘Publish’. 

Keep reading to learn how to create custom fields and taxonomies for storing extra data in WordPress. Or if you want to get started with displaying your custom post types on your website without any extra fields, skip ahead now.

Creating WordPress custom fields with Pods

In this section, I’ll teach you how to create custom fields using Pods. You can create extra fields for custom post types created using Pods, or any other post type in WordPress. This might be your normal blog posts, pages, WooCommerce products, events, portfolios, or something else.

First, you need to know what types of custom field are available to choose from. Here’s a list of all the custom field types that you can create using Pods.

Pods custom field types

Posts Table Pro lets you display these Pods custom field types:

  • Plain Text – Unformatted text.
  • Website – A clickable link to any website or URL. Good for website links or downloads (e.g. in a WordPress document library).
  • Phone – Displays phone numbers. Use the ‘Advanced’ tab to select a format, and Pods will automatically add any dashes.
  • Email – A non-clickable email address. If you want to make it clickable, then I suggest adding it to a WYSIWYG field instead. That way, you can highlight the email address and add the link.
  • Plain Paragraph Text – Paragraphs of text with line breaks but no formatting.
  • WYSIWYG (Visual Editor) – Probably the most useful field type, this adds a full WordPress visual editor to your custom field. You can add any type of content and format it using the WordPress toolbar. You can even add images, video, audio file, galleries, etc.
  • Date/Time, Date & Time – These 3 fields display dates and/or times. Use the ‘Additional Field Options’ tab to choose the format. Pods will show a date/time picker when you add data to this custom field. It will then show it on your website in the correct format.
  • Plain Number – Use this to store any number with no special symbols or extra formatting.
  • Currency – This field lets you display a currency or price. Use the ‘Additional Field Options’ to choose the currency symbol etc.
  • oEmbed – Displays any of the oEmbeds supported by WordPress. For example, if you paste a YouTube video URL then WordPress will automatically display it as an embedded video player using Posts Table Pro. (Note: You can also insert oEmbeds into the WYSIWYG field type.)
Add WordPress custom fields Pods plugin
I added data to various custom field types on a custom post
WordPress Pods Custom Field Types
Posts Table Pro displays the same custom fields like this

Pods custom fields that work but are less relevant/useful

  • Color Picker – With this field type, Pods will display a color picker when you add a custom post. Posts Table Pro will then show the hexadecimal value of the color. Not sure why you’d ever want to do this, but it’s there if you need it!
  • Yes/No – In theory this field does work with our plugins. However, if you select ‘Yes’ then it will just display as ‘1’, which isn’t very user-friendly! I’d recommend a different field type for displaying this sort of information.
  • Code – Useful for displaying shortcodes or source code on your website.

Custom field types that can’t be displayed using our plugins

  • Password field – You can use this to add an encrypted password in the back end, but the password column will appear blank if you try to display it using Posts Table Pro. This is for security reasons.
  • File / Image / Video – If you need to add files, images or videos, then you can easily add these to one of the other field types. For example, you can add images using the ‘Add Media’ button of a WYSIWYG Visual Editor field, add videos by pasting a YouTube link to a WYSIWYG Visual Editor field, or using the oEmbed field type.

How to create WordPress custom fields

Ok, now you know which custom field types are available for you to choose from. Next, I’ll tell you how to create custom fields for any WordPress post type. The instructions are slightly different depends on whether you’re adding custom fields to a post type created in Pods, or an existing post type (e.g. posts, pages, products, events, etc.).

Adding custom fields to Pods custom post types

  1. Go to Pods Admin > Edit Pods and click on the WordPress custom post type that you’re creating custom fields for. This will take you to the ‘Manage Fields’ tab on the ‘Edit Pod’ screen.
  2. Click ‘Add Field’ and enter the data for your custom field:
    • Label – This will appear above the custom field on the add/edit custom post screen.
    • Name – (Generated automatically when you add the Label.)
    • Description (Optional.)
    • Field Type – Choose a supported type of custom field from the list above.
    • Options – Choose whether this field is mandatory when you create and save a custom post, or whether you can leave it blank.
  3. Click ‘Save Field’.
  4. Repeat steps 2 and 3 to create as many WordPress custom fields as you need.

Adding custom fields to other WordPress post types

To add extra fields to other post types such as posts, pages, products or events, the instructions are the same as above. However, instead of Pods Admin > Edit Pods, you need to go to Pods Admin > Add New and click the ‘Extend Existing’ option. From there, you can add custom fields to any post type – not just those created in Pods.

Entering data for your Pods custom fields

When you go to Add or Edit a post in your WordPress custom post type, you’ll see all the custom fields listed in a section called ‘More Fields’. You’ll find this just below the main content editor for the post.

Enter all the information for your custom fields, and Publish or Update the post as usual. Pods will show helpful warnings if you try to anything in the wrong format, so it’s nice and easy.

Next, I’ll show you how to create custom taxonomies using Pods. Or if you want to get started displaying the custom post types and fields directly on your website, skip ahead now.

How to create WordPress custom taxonomies

So far, you’ve learned how to create a custom post type using the Pods framework. You’ve also learned how to create custom fields for your custom post type. Next, I’ll teach you how to create taxonomies for your post types.

  1. Go to Pods Admin > Add New and click the ‘Create New’ option.
  2. On the ‘Add New Pod’ screen, select ‘Custom Taxonomy (like Categories and Tags)’ from the Content Type dropdown.
  3. Add a Singular Label and Plural Label. For example, if you need the custom taxonomy to store country data then the singular should be ‘Country’ and the plural should be ‘Countries’.
  4. Click ‘Next Step’.
Create WordPress Custom Taxonomy Pods
  1. Most people reading this article won’t bother adding fields to their taxonomies because (a) this is a niche case, and (b) they’re not supported by our plugins. So go straight to the ‘Advanced Options’ tab and scroll down to ‘Associated Post Types’. This is really important, as it’s where you link WordPress taxonomy with the post type that you need to use it on. Choose a post type from the list. This could be normal WordPress pages or posts, or a custom post type.
  2. Click ‘Save Pod’.

How to add custom taxonomy terms in Pods

WordPress taxonomyNow you’ve created a WordPress custom taxonomy for your post type, it’s time to add data to it.

Go to Add or Edit a post for whichever post type you’re using the taxonomy on. You’ll see the taxonomy listed on the right, just like WordPress categories.

At first, it will look something like this screenshot, as you haven’t added any data yet. Click ‘Add New Country’ (or whatever you called your taxonomy) and add 1 or more terms. These will appear as check boxes. You can make terms parents of each other to create hierarchical taxonomies in a nested structure:

Add WordPress taxonomy term plugin

Tip: You can also add, edit, delete and restructure your custom taxonomies centrally. Find the post type in the left of the WordPress admin, and hover over it to find the link for the taxonomy. This page will be just like the main ‘Categories’ page in WordPress, and you can use it to manage the taxonomy terms.

Displaying Pods content in the front end of your WordPress website

As you can see, Pods is brilliant for creating WordPress custom post types, field and taxonomies where you can store extra data in the back end. Where it falls down is how to display this data on your public-facing website.

Most people using Pods go down the technical route of programmatically adding the custom data to their template files. This is a suitable option for developers who know how to code, and have the time to do it. If that’s not you and you don’t want to pay a developer, then you can easily display your Pods fields on the front end of your website using our Posts Table Pro WordPress table plugin.

Posts Table Pro lists any type of WordPress content in a searchable and sortable table layout with filters. It can display WordPress custom post types, custom fields and even custom taxonomies.

You can use the plugin to display WordPress custom post types, with each custom post appearing as a separate row in the table. It can also display custom fields as columns in the table. You can list custom taxonomies as columns in the table, and also as filter dropdowns above the table. If you want, then you can also create tables listing posts with a specific custom field value or custom taxonomy term.

I’ll show you how to do all this next.

How to list custom post types on a WordPress website

  1. Install the Posts Table Pro plugin.
  2. Set up Posts Table Pro using the instructions in the ‘Getting Started’ email.
  3. Go to Pages > Add New and create a page which you’ll use to list the custom post type.
  4. Add the following shortcode: [posts_table post_type="your_post_type"]
  5. Replace your_post_type with the label for the post type you want to display. If you created the post type using Pods then this will be the Singular Label you added earlier. If you added the Label as multiple words, then you need to add an underscore (not a hyphen) between each word, as I did in my example.
  6. Now view your page, and you will see all the posts for that custom post type listed in a neat table layout.

At this point, your list of custom posts will look something like this:

List WordPress custom post types on website

You can use the Posts Table Pro knowledge base to show different columns, rename the columns, and much more.

How to list WordPress custom fields in the front end

Next, I’ll show you how to list your Pods custom fields as separate columns in the table. Again, you’ll need Posts Table Pro for this:

  1. Create a table using Posts Table Pro, as per the instructions in the previous section. Extend your shortcode to something like this: [posts_table post_type="your_post_type" columns="title,cf:your_custom_field_1,cf:your_custom_field_2"]. Replace the blue text with the Singular Label of the custom fields you want to display. If the Singular Label consists of more than one word, then you need to add an underscore between each word. In my example shortcode, I have shown you how to add 2 custom field columns. You can add as many as you like – separated by commas, with cf: before each one.
  2. If you want to display formatted content (e.g. links, text formatting, HTML, shortcodes or video), then you should also add shortcodes=”true” to the shortcode. For example: [posts_table post_type="your_post_type" columns="title,cf:your_custom_field_1,cf:your_custom_field_2" shortcodes="true"]

Now, your table will look something like this:

Display WordPress custom fields on website

How to show WordPress custom taxonomies in the front end

By now, you’ve learned how to display WordPress custom fields in a table with extra columns for custom fields and other data. Now, let’s extend it by showing a custom taxonomy:

  1. Use Posts Table Pro to create a table, as per the instructions in the previous two sections.
  2. Extend your shortcode by adding tax: followed by the Pods custom taxonomy. For example: [posts_table post_type="your_post_type" columns="title,cf:your_custom_field_1,cf:your_custom_field_2,tax:country" shortcodes="true"]. This time, replace the text in green with the actual Singular Label (separated by underscores if it’s multiple words) for your WordPress taxonomy. If you want to show multiple taxonomies, then just separate them with commas and make sure you add tax: before each one.
  3. Save the page and view the table.

Your table will now contain the custom post title, custom fields, and custom taxonomies:

List custom taxonomies WordPress plugin


People can click on any custom taxonomy in the table to filter by that term. Read on to discover how to add taxonomy filter dropdowns above the table too.

Now you know how to create WordPress custom post types, fields and taxonomies, and to list them on your website. Before we finish, I’ll show you how to create tables which contain posts with a specific custom field value or taxonomy only. I’ll also show you how to add custom taxonomy filters, which make it easier for people to find your posts.

How to list posts based on a custom field value

You can use Posts Table Pro to show posts with a specific custom field value. For example, if you have a custom field called ‘Vegetarian’ then you can create a table listing all posts with a custom field value of ‘Yes’.

To do this, you need to add cf="<field name>:<field value>" to the posts table shortcode. To use my example with Posts Table Pro, this would be:

[posts_table cf="vegetarian:yes"]

How to list posts with a specific custom taxonomy term

It’s also possible to use our plugins to show posts that are labelled with a specific custom taxonomy term. For example, if you have a custom taxonomy called ‘Country’ then you can create a table listing all posts with the term ‘France’.

You can do this by adding term="<taxonomy_label>:<term slug or ID>" to the posts table shortcode. To use my example with Posts Table Pro, this would be:

[posts_table term="country:france"]

How to let your users filter by custom taxonomy

Finally, I’ll tell you how to add custom taxonomy filters above the list of posts. The filter will appear as a dropdown list – 1 for each custom taxonomy. Users can refine the list of posts by clicking on the taxonomy terms in the dropdowns.

To do this, add filters="tax:<taxonomy_label" to your posts table shortcode. For example, this shortcode will list posts with filters for the country and year taxonomies:

[posts_table filters="tax:country,tax:year"]
WordPress custom taxonomy filter plugin

How to password protect custom post types

Before we close, I’ll quickly tell you about how to hide your WordPress custom post types from public view. There are lots of reasons you might want to protect some or all of a custom post type. For example, you might be creating a private document library that only specific people can access. If you’re a designer then you might need a private portfolio that is hidden from public visitors of your website.

There are 2 ways to do this:

  • Password protect categories within your custom post type
  • Create private custom post type categories that are only visible to logged in users based on their role

You can learn how to use both methods in our tutorial: Password Protect Any WordPress Custom Post Type (In Just 5 Minutes).

Pods: The verdict

Wrapping up, I would say that Pods is an excellent plugin to create WordPress custom post types, fields and taxonomies.

Used alone, you need some technical know-how to display Pods custom fields on the front end of your WordPress website. However, that’s not a problem because you can use Posts Table Pro or WooCommerce Product Table to list your Pods data, without needing any technical expertise.

What do you think of Pods compared to other plugins for creating custom data in WordPress? Please let me know in the comments.

Posts Table Pro Product Table Pods

Katie Keith

An active member of the global WordPress community, Barn2 Co-Founder Katie loves collaborating with other plugin companies. Her articles have been published on high profile sites including WPTavern, Torque and IndieHackers. She oversees all plugin support and deals with 'Tier 2' support requests about how to use Barn2's plugins in advanced ways.


  1. coderx
    July 11, 2018 Reply

    For some reason the shortcode is not taking my "term" into consideration.. i am not sure why?

    any help is appreciate it.

    • Katie Keith
      July 11, 2018 Reply

      Hi Vincent, the most likely reason for this is if you've got the syntax for your taxonomy slug wrong in some way, so it's worth double checking this. If that doesn't help, please send us a support request.

  2. Wordpress Customization
    May 30, 2018 Reply

    Excellent post! This really helpful to used my business site development. Its nice information for wordpress users. Good job and well explained.


  3. David Ruana
    February 10, 2018 Reply

    Thank you Katie for this awesome plugin!

    I would like to use it to display a main video gallery (in the front end) from which users can select their favourite videos. The selected videos will be used to create a personal video gallery for each user, which in turn will be embedded in one of their personal pages.

    I am planning to try in the following way: the main gallery should display the "Add to my gallery" button. The personal gallery should display the "Remove from my gallery" button. Also would be great if it could show some "Up" and "Down" buttons in order to reorder the items in the table.

    Which piece of code would you recommend to create/delete the posts programmatically?

    • Katie Keith
      February 14, 2018 Reply

      Hi David, I don't think this is possible without a lot of custom coding. As a workaround, you can add filters that will let each user refine the list of videos so that they can only see the ones they're interested in. However, this wouldn't be saved anywhere so they can't come back to their personal gallery later.

  4. David Reinhardt
    February 7, 2018 Reply

    Hi - this is brilliant. It couldn't have come at a better time.

    In respect of filtering the records show, is there a way of filtering records (custom post types) by the current user? I have the user ID as a custom field in the custom post type - how would I tell Post Table Pro to filter that field by current user? (What I'm trying to achieve is to only show records created by the currently logged in user.)


Please share your thoughts...

Your email address will not be published.