Custom Post Types: Take WordPress Beyond Blogging

By James Steinbach
We teamed up with SiteGround
To bring you the latest from the web and tried-and-true hosting, recommended for designers and developers. SitePoint Readers Get Up To 65% OFF Now

If you’ve used WordPress as a CMS for your clients, you’ve probably had to reassure a client that it’s not just ‘a blogging platform’. The Dashboard, however, doesn’t help. Unless you’ve installed plugins that provide custom post types, all an editor can add are posts and pages. Nearly every client site or premium theme I’ve built has needed something custom: products, events, testimonials, team members, services, locations, and so on.

There are some less-than-ideal ways to provide what your client needs. You can give them strict instructions for using post categories or parent pages to create faux post types (that’ll break as soon as they forget your instructions). You can find a plugin for each custom post type (that’ll introduce more code too, for you to vet and maintain). A cleaner solution is to add your own post types. This article will compare Types and Pods, two plugins for creating unique custom post types to match your (or your client’s) needs precisely.

Custom Post Types with the Types Plugin

The Types plugin is a free plugin that provides a Dashboard admin area for creating custom post types, custom taxonomies, and custom fields for your WordPress site. It boasts over 100,000 commercial users and full WPML multilingual support. Types is part of the Toolset family of plugins: the other plugins (which are paid) allow you to create template views without code, generate new content from the front-end, and set up custom roles and access privileges. The free Types plugin provides a great deal of usefulness even without the other plugins.

The Types WordPress Plugin

Benefits of Using the Types Plugin

One of the biggest benefits to the Types plugin is its consistent, simple UI. Its design fits right into current Dashboard visual styling so it feels familiar right away. Types gives you all the options you need for configuring your own custom post type: you start by assigning it a title and a Dashboard icon.

Once you’ve done that, you can configure many additional options about that post type: whether or not to give it an editor, custom fields, excerpt, a featured image, or several other common post meta-data options. The advanced configuration section allows users to make adjustments to the post type’s permalink structure, exclude its posts to appear in search results, permit exporting the post type, and allow the post type to be used in WordPress menus.

All of those features can be accessed in a single Dashboard admin page. Additionally, Types provides the ability to set custom taxonomies (categories, tags) and generate custom data fields (dates, URLs, file uploads).

All your Types settings can be exported and imported from one site to another. They can also be copied to an ’embedded-types’ directory in your theme, and synced via version control without even needing the plugin on the production site.

Drawbacks of Using the Types Plugin

The only thing that I’d like to change about the Types plugin is its custom fields interface. That’s slightly off-topic for this post, but since custom post types and custom fields are often tightly related, I think it’s worth mentioning here. If you know you’re going to need a high degree of configurability for custom fields attached to your custom post types, keep reading to learn about the Pods plugin.

Custom Post Types with the Pods Plugin

The Pods plugin provides the same features that Types provides, but with a more complex interface and more advanced features. It’s also a free plugin with extensive documentation and a wide user base. Pods also offers several paid plugins to extend its free features, including search filters, CSV import, widget generation, and code-free templating.

The Pods WordPress Plugin

Benefits of Using the Pods Plugin

In addition to the features that Types provides, Pods offers a more granular field-management system. After creating a new post type, Pods presents you with a blank slate, requiring you to add any necessary fields from scratch. The WordPress title and editor are enabled by default, but behind another screen (‘Advanced Options’).

Pods offers some additional custom field controls that Types lacks. These extra options include character limits, detailed date/time input, code syntax, and country/state lists.

The Pods team has also included some very useful features besides custom post types: custom admin pages, extending comments, and building custom content types that live outside of the default WordPress database tables.

Drawbacks of Using the Pods Plugin

The user interface is the largest drawback of the Pods plugin. Certain design details don’t match the standard WordPress Dashboard styling. This can make Pods feel like a different plugin. Not only does Pods look different, but the interface also requires more steps and more screens during the configuration process. This is probably a fair trade-off for power users: you’ll gain more control by doing more work.

Writing Your Own Custom Post Type Code

Of course, WordPress developers often use core functions to build their own themes and plugins. If you want to keep all custom post type information in your own plugin or theme, you can use the register_post_type() function to write your own.


Types and Pods both make it very easy for developers to extend WordPress’ CMS function and create a powerful, customized site management experience for clients. Types offers a clean interface with enough options to cover the vast majority of custom post type needs. Pods gives more configurability for advanced case uses at the cost of a slightly more cumbersome interface. For hard-core WordPress DIY-ers, register_post_type() provides the ability to roll your own custom post type code from scratch.

We teamed up with SiteGround
To bring you the latest from the web and tried-and-true hosting, recommended for designers and developers. SitePoint Readers Get Up To 65% OFF Now
  • Doug Smith

    Another useful tool is Easy Content Types from Pippin’s Plugins. What I like about that one is that you can create custom post types, taxonomies, and meta boxes through the interface then have it write code for you to use and modify in your own projects. It is a commercial plugin that I find well worth the price for those features.

  • Thanks for sharing Doug!

  • Angie Meeker

    I also really like Custom Post Type UI from WebDevStudios. It’s in the repo.

  • Mark Popkes

    I’ve heard good things about the Types plugin, although I’ve never used it before. When it comes to Custom Post Types, I usually just write the code myself via the register_post_type() function. When it comes to creating custom meta boxes, you cannot go wrong with Advanced Custom Fields. It’s a must have for any WordPress developer.

    • Agree Mark, ACF is pretty awesome!

    • Ben Freke

      ACF is amazing.

      Instead of writing any CPT code by hand, this GUI is very useful in my experience.

      What I’ve found so far is that the the majority of differences in page design can be handled by the use of a template file and ACF with a bit of thinking. Which reduces the clutter in the admin to make it easier for the client to find what they’re after.

      • We’ve actually got something on ACF coming very soon, stay tuned! :)

  • In Genesis, you can copy the CPT code from the Executive Pro theme and use it in any child theme running Genesis. No need for a plugin and very easy to modify unlike a plugin.

  • Thanks for the input, all.

    Doug, I really like the way Easy Content Types exports to plain old WP functions.php code. Great recommendation.

  • Last time I try pods, it doesn’t support repeated field. So I stick with Types.

  • There are currently no paid plugins for Pods.