In this article I want to look at WordPress Custom Post Types (CPTs) and the display of dynamic data. WordPress has had internal support for Custom Post Types since version 3.0, but does not have a built-in way to create them or to display CPT content on the front-end. For a long time, this was the province of only a few plugins and / or custom programming. In the past two years the number of good options has increased, but because there differences in functionality and ease of use, the best choices are not always obvious.
There are three legs to this stool: creating the CPTs and their custom fields so that authors can enter content, creating the theme templates for the single and archive display of the CPTs on the frontend, and advanced usage, such as complex relationships, conditional display, and search. These are three separate, but related, functional areas that come into play when evaluating tools for creating and display dynamic data. There are few tools that cover all three areas, but often you may use a combination of tools, or use some tools together with custom programming.
Also, all tools are not created equal. Some plugins that allow you to add field groups let you add them to core WordPress post types to extend those, as well as to CPTs you create. Some tools for creating fields and CPTs allow you add “relationship” fields to link CPTs. Some of these are more sophisticated than others. Some tools for creating templates via a UI allow you to essentially theme your entire site, while others provide templating ability just for the CPTs you create with their tool.
Let’s look at the cast of characters. I’m going to discuss Advanced Custom Fields Pro, Beaver Themer, Brizy Pro, Crocoblocks, Elementor Pro, Meta Box, Oxygen, Pods, Themify Custom Post Type Builder, and Toolset. This is a high level survey. I’m not going to demo using any of these tools, but instead I’m going to map these tools to the three functional areas involved and drill down on the things to keep in mind when making a decision. Also, many of these tools go beyond the three functional areas and that might be a consideration when making a choice.
Levels of Complexity
Remember buying your first computer and the salesperson asked you “what are you going to use it for?” Yeah, if you said “surfing the web” and “word processing” then that meant low end. If you said “games” then that meant at least a medium level machine with a good graphics card. If you said “Photoshop” then that meant a high end machine with a good graphics card, lots of memory, and fast hard disk. Well, there is a similar stepping of things to consider when it comes to CPTs, templates, and display flexibility.
Simple Custom Post Types
For the sake of this article, “simple” means basic CPTs, like “Portfolio”, “Team”, “Recipes”, “Books”, or “Movies” where you need single and archive templates and that’s about it. For many sites, that is all you need. Note that my expectation is that you have display logic for when to use the templates, which is different than conditional logic within the template and other advanced usage.
A “medium” level of complexity are cases where, for instance, you have multiple related CPTs, you want to support various display conditions, searching, and/or embed CPT content within other content. Not to put too fine a point on it, but somewhere in the middle of medium (sigh) you pass into advanced usage which requires conditional logic and support for advanced field types.
Complex Custom Post Types
A “high” level of complexity involves more complex relations where you are building an entire system out of CPT building blocks and their relations. Complex solutions will often involve careful architecture and custom PHP.
If you are building an “enterprise” level solution then stop and ask yourself if WordPress is the best foundation. It is possible to base an enterprise solution on WordPress, but you are going to need a full time team that covers the entire stack and such is beyond the scope of this discussion of tools.
Here is a matrix showing the capabilities of the tools being listed:
|Create CPT||Create Custom Fields||Create Templates for CPT||Conditional Logic & Flexibility For Front-end Display|
|Themify Post Type Builder||Y||Y||Y||N|
Advanced Custom Fields Pro
Advanced Custom Fields (ACF) is a good example of a plugin that focuses on one thing and does it well. For a long time, ACF was one of the few main go-to solutions for creating sites with customized content types. Using ACF, you create field groups, add fields to them, and then assign them to the edit screens for the post type, or CPT that they will be used with. The UI is well crafted and the plugin is very solid. ACF Pro comes with more than 30 field types, including relationship fields, and it is so widely used that there are hundreds of third-party extensions. I have the notion that they invented the repeating field, but maybe they just brought it into the mainstream.
ACF does not have the ability to create CPTs itself, so it is often coupled with the Custom Post Type UI plugin or the output from a CPT code generator to create the actual CPT. If you are interested in this route, David Waumsley and Adam Preiser have some good videos tutorials.
Classically, developers used ACF for creating bespoke themes for small businesses, restaurants, and so on. These ACF solutions involved custom coding the theme single and archive template files, and the plugin comes with helper functions to make that easier. These days, you can use some template building tools, such as those listed here, for creating the single and archive layouts.
Pros: ACF Pro is updated regularly, comes with an affordable lifetime license, is GPL, has good documentation and support, and there are lots of online resources. All of the template builders mentioned here support it.
You can use ACF to extend built in WordPress post types.
Cons: ACF does not have the ability to create CPTs, nor does it have any templating features, conditional logic, etc for front-end display. You will need to do some custom programming or use an addition tool to create the CPT and another one for generating the output for the front-end.
Additional Information: These days people want more flexibility and speed than you get with hand-coded PHP template files. Beaver Themer, Elementor Pro, and Oxygen support ACF in their template builders. So, ACF has a lot going for it. There is nothing in ACF that limits it to one level of solution, the limitation largely being a function of what you pair it with. ACF Pro is $100 Australian dollars, or about $72 US Dollars, for the unlimited lifetime version.
The Beaver Builder team was the first to create a plugin connecting a front-end page builder to a theme layout builder. You can create your layouts easily using the familiar Beaver Builder layout options making it one of the easiest template builders. You are able to select a post for the template being created, so that you get a closer WYSIWYG experience. Beaver Themer lets you create layouts for single and archive templates. You can also use it to theme 404 and search pages. Themer allows you to create custom headers, footers, and template parts, but you will need a theme that includes Themer support for these.
You connect your templates to fields in your post types by selecting them using field connectors. You can create layouts for global use or set display conditions, such as for a certain post type, or archive term. These display options are pretty standard now for determining template usage. Themer has taken it further by including conditional logic options for showing or hiding content within layouts based on field values.
Pros: Beaver Themer is easy to use and they have added conditional logic for use when creating templates and for within Beaver Builder, which means that you can go beyond basic single and archive templates. The plugin is GPL, there is good support and an active community. Beaver tools are oft cited for their stability, which is a boon for those offering care plans. Beaver Themer officially supports CPTs and fields created using ACF, Pods, and Toolset.
You can use Themer to create templates for built in WordPress post types as well as with CPTs.
Cons: You are going to need another tool for creating your CPT and custom fields. ACF (with CPTUI or a CPT code generator) and Pods are popular choices. You could use Toolset for creating your CPT and Themer for the templates, but there is a lot of overlap and I'm not sure that makes sense. Themer is an add-on to Beaver Builder, which means it is an additional purchase. Due to the slow pace of releases, new features are not released as often as they are for other plugins in this space.
Additional Information: In a recent WP Tavern interview, a member of the Beaver Builder team shared that they are focusing on the site developer community, as opposed to single users or designers. That is good news in this area, because as working with CPTs is more of a developer purview.
Meta Box is another option for creating your CPTs and they have a free extension for working with Themer. The Meta Box extension allows you to use custom fields in concert with Themer conditional logic to control front-end display. This YouTube video from the Meta Box team demonstrates that feature.
Pods also has a free Beaver Themer companion plugin for use with Themer. The Pods extension makes it easy to work with relations between CPTs and makes Pods easier to use than ACF Pro in this regards. For more information on this, see Peter Luit's article comparing using Pods vs ACF Pro with Themer.
Beaver Builder and Beaver Themer together will cost $246 the first year. After the first year, that goes to $148 annually. Recommended for everything but the more complex use cases.
Brizy Pro is a new WordPress page builder from the team behind ThemeFuse themes. It is planned that Brizy Pro will have the ability to create templates for CPT single and archive displays. The Brizy Pro “dynamic data” functionality includes support for ACF, Meta Box, Pods, and Toolset.
Pros: Brizy Pro is easy to use and there is an active Facebook community.
Cons: Brizy Pro is still in beta. They released some dynamic data functionality last September, but the dynamic data and templating functionality in Brizy Pro is currently incomplete.
Additional Information: There is a $299 lifetime option which will be discontinued when it comes out of beta. The license type for the Pro version is not yet known.
Not recommended for use on production sites at this time.
Crocoblock is a suite of plugins / an add-on packages for the Elementor page builder. It includes a theme and template library in addition to CPT-related features.
The suite contains a huge number of Elementor widgets and users may find they got the CPT features as a bonus. The suite uniquely includes a plugin called JetEngine, which allows you to create CPTs and custom fields and another plugin JetThemeCore for creating templates. So, the suite covers both creating CPTs and creating templates.
Pros: You can use the Crocoblock Suite to extend built in post types and it supports relational fields linking CPTs. The Elementor Pro widgets that support dynamic data work with JetEngine fields and Crocoblock has added dynamic fields to a number of the widgets in the suite.
The team releases updates and new features regularly and there is a very active Facebook group. The suite contains a plugin JetSmartFilters that works with its CPTs. The Crocoblock suite works with Elementor free version (works with Pro but doesn't require it) and has a lifetime license option. The plugins are distributed without a license file, but I believe they are GPL.
Cons: You can set the conditions for template usage, but there are no conditional logic options.
Additional Information: Given the lack of conditional logic, I'd recommend the Crocoblock Suite for simple to medium complex CPT projects. If you are using Elementor and already own the Crocoblock Suite, it is a cost effective option, though you will be tied into that ecosystem. The lifetime unlimited site option is currently $299.
Elementor is the most popular WordPress page builder, having almost 2 million users. There is a free version and a premium Pro version. Last Spring Elementor added support for creating templates and CPTs to the Pro version.
The theming features are easy to use and built in to the Pro plugin. The widgets from Elementor allow you to connect fields in your template to fields in your Custom Post Types. You can create templates, headers and footers and set the conditions for use. The theming features work with all themes.
Elementor Pro officially supports ACF, Pods, and Toolset. If you are interested in using Elementor Pro, I wrote a post on using its theming abilities with Toolset.
Pros: You can use Elementor Pro to create templates for built in post types, create template parts, and create custom 404 pages. The Elementor Pro theme template building features are easy to use and the support for dynamic content is good. It gets updates and new features regularly and has a huge community. Meta Box has an extension for using Meta Box fields with Elementor Pro.
Cons: Elementor Pro does not have support for conditional logic and display (other than for device types).
The license for the Pro version is not GPL compatible.
Additional Information: The lack of conditional logic reinforces my impression that Elementor targets the designer community more than the developer community.
Meta Box has been around for a while, but it seems like it has had a higher profile in the last year or so. It allows you to create CPTs and custom fields. It was originally designed in a very modular fashion, which means that there is a separate plugin for each feature, though there is now a move to also have some “all in one options” to avoid overwhelming the plugin page.
Meta Box is very developer focused. In fact, you can export your CPTs and fields to code and put them in your child theme’s functions.php file or a plugin. There are 47 field types and 29 plugin extensions, covering the range from front-end submissions to custom database tables on the back-end. I wrote a post about using Meta Box with Beaver Themer if you are interested in it.
Pros: The Meta Box plugins are actively developed and well supported. The Meta Box team has created their own extensions for use with Beaver Themer or Elementor Pro. There is a lifetime purchase option and it is GPL licensed.
Cons: The community of users seems small and it is only officially supported by Brizy Pro, of all of the template builders listed here. Advanced features, such as relationships, will require adding PHP code. It might not make sense if you are not comfortable working with code.
Additional Information: There is nothing inherent in Meta Box that would limit it to a certain level of project. It would make sense if you wanted or needed to work closely with code. The lifetime unlimited site version is $349.
Oxygen is a somewhat unique combination of theme template builder and page builder that takes over and replaces the theme. The template building features have support for ACF and Toolset. Of all of the plugins in the builder class, Oxygen is one of the most developer focused and includes a code block for custom PHP and a PHP callback function for working with advanced field types. I created a post about Oxygen if you are interested in it.
Pros: The template building features work well and are easy to use. Oxygen is actively developed, has a very active Facebook community, and good documentation. The plugin is currently priced at $99 as a lifetime one time purchase.
Cons: Oxygen itself doesn't have conditional logic within display templates, so you would need to manually code that or use Toolset Views in your templates. The Oxygen license is not GPL compatible.
Additional Information: Working with Oxygen is different than working with a theme and some builder / themer plugin. If you choose it as your themer option then I'd recommend ACF for simpler projects and Toolset for medium to complex ones.
Pods is a free solution for creating CPTs and custom fields. It has extensive support for a range of field types. It allows you to create CPTS and add custom fields easily and is very flexible. There is some templating ability and conditional logic, using Pods templates, shortcodes, and Pods “magic tags.”
Pros: Pods is a popular solution for creating CPTs and custom fields. It has extensive support for field types and relations. The Pods Beaver Themer extension makes working with CPT relations very easy when using Themer to create your templates.
Of all of the plugins mentioned in this article, Pods is the only one that is 100% GPL open source with no premium option. It is regularly updated. There are a good number of 3rd party extensions. It is fast and works well under the hood. Many of its users seem enthusiastic and willing to help other users and the project has an active Slack channel for help.
Cons: The user interface seems a bit dated, the documentation sports videos from 4 and 5 years ago, and it sometimes feels like a hodgepodge. The templating ability works, but is somewhat primitive, will require HTML and CSS, and is not a visual building experience.
Additional Information: You can get the job done using Pods templating features if you are comfortable with HTML and CSS, but many users would want to pair it with Beaver Themer or Elementor Pro.
There is nothing in Pods per se that would limit it to a certain level of project complexity. Pods is popular among Beaver Themer users and its integration with Beaver Themer makes that a good pairing.
Themify Post Type Builder
The Themify Post Type Builder is an easy to use plugin for creating CPTs, for adding custom fields, and for creating the templates for single and archive display. It has integration with Themify’s themes, but will work with any theme.
The creation of the CPT and custom fields is pretty standard. When creating the templates, you use a builder interface to layout rows and columns and then drag and drop fields into position. The templates are responsive out of the box.
Pros: The Themify Post Type Builder is one of the easiest options available for creating CPTS and creating display templates. It has a simple relationship field and the option for repeater fields. It is kept up to date, uses a GPL license, and there is a lifetime purchase option. Support is good.
Cons: There are not a lot of field types. There is no conditional logic. I haven't seen new features rolling out regularly. There is not a large community for user assistance.
Additional Information: My sense is that the interface is kept simple and straightforward, which makes it easy to use, but it may not have a ton of flexibility for advanced use cases. If you are using Themify themes, the Themify Post Type Builder makes sense for simple to medium use cases. The plugin subscription is $49 a year, or you can purchase the lifetime club option for $249 that includes all of their themes and plugins.
Along with ACF, Toolset has been one of the solutions that has been around for a while. It is used for both creating CPTs and for displaying custom content. Toolset is a suite of plugins largely focused on CPTs and their display, so it makes sense that it is the most comprehensive. It includes Types for creating CPTs and adding custom fields, Views for creating templates, and Layouts which provides additional options for template creation. There is also a maps plugin and a limited forms plugin for front-end submissions, along with other plugins for things like site management. The Views plugin provides options for creating search forms and complex displays with conditional logic beyond just template usage logic.
Pros: You can use Toolset to extend built in post types and you can also use it to create templates for them, in addition to templates for CPTs. The post relationship features are sophisticated and I suspect the most performant for large complex projects, though I don't know of any official statistics. There is a very of the Views plugin for use with WooCommerce.
Toolset is actively developed and has good support. It offers a complete solution from CPT creation to the most complex output requirements. Toolset has integration with a number of popular page builder themes and you can use Beaver Builder, for instance, to create your content templates and archive loop templates. Beaver Themer, Elementor Pro, and Oxygen template builders support Toolset, so often you can side step any limitations those tools might have an use Toolset features directly. Toolset plugins are GPL.
Cons: The suite is not the easiest to learn and though there is a large amount of documentation, it can sometimes be hard to find. Toolset used to be billed as a coding free solution, but you will most likely need some HTML and CSS knowledge for simple to medium projects and may need some PHP for complex projects.
Additional Information: The Types plugin was originally offered on the WordPress directory as a free lead-in for the premium suite, but that has changed and to get the latest version of Types you need a premium subscription. Toolset used to have a lifetime purchase option, but they have moved to a subscription only model. The cost of the subscription has gone up, likely to help cover the cost of support. The unlimited site version is $299 the first year and $224 after the first year, making it both the most comprehensive and most expensive option.
I'd recommend Toolset for any level of project, from simple to complex.
If you want to make a smart decision about which tools to purchase and master, then you need to decide what level of projects you are going to be working on and what capabilities you need.
One wrinkle in identifying the level of complexity of your projects is that you might only need simple solutions now, but you can imagine being asked about medium and higher level projects in the future. Can you master one set of tools and be able to use them no matter the project? The answer here is “yes”, you can choose tools that will work across the spectrum, but, referring back to the computer example above, you are basically choosing “Photoshop” and that’s the more complex, costly solution. If that causes you to pause, then consider that 90% or more of the sites needing CPTs are of simple or medium level of complexity and that highly complex sites are rare.
Identifying and understanding your niche will serve you well. For example, you don’t have to take the most complex jobs. Your projects may be tied to your page builder of choice. If you are a wizard with the Elementor Page builder then you then you may decide to only take projects where you can maximize those skills. On the other hand, you may prefer long term complex projects, have mastered database design and optimization, business process modeling, etc and want to focus on system building. Fine. It would be a mistake, however, to think that experience at one level translates into mastery at another. Assuming otherwise could lead to being lost in the one instance and over complicating and over engineering in the other.
If you have noticed that I am biased against coding by hand then you are correct. My assumption is that you want to get the job done well in the quickest and easiest way, given the complexity of the project. Coding by hand is slow and can also be harder to maintain. However, if you need to use code, then I’d favor ACF Pro or Meta Box.
For simple and medium level solutions that are straightforward, any of the options that allow you to create templates will work. Pods has some templating and conditional logic features, but of the tools with templating options in the list, it is the most primitive. Pods strength is in creating CPTs and custom fields. It currently has the deepest integration with Beaver Themer, and that is what I’d pair it with.
For the most complex projects, where you are creating a system out of Custom Content Types and their relations, Toolset will give you the most capabilities and flexibility. For projects requiring conditional logic and advanced displays, Beaver Themer and Toolset are good options. I created a post where I look at the process of creating theme templates in Toolset and Beaver Themer. My conclusion was that it was a bit easier with Themer, but Toolset handled more complex use cases.
I hope that this listing is useful for your site building and for choosing the best tools for the job. Let me know in the comments if you have questions or suggestions.
Affiliate Disclosure: Some of the links in the post above are “affiliate links.” This means if you click on the link and purchase the item, I will receive an affiliate commission. You will still pay the standard amount so there is no extra cost to you. I am disclosing this in accordance with the Federal Trade Commission’s 16 CFR, Part 255: “Guides Concerning the Use of Endorsements and Testimonials in Advertising.”