Updated and expanded 9/9/2020
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 few years the number of good options has increased, but because there are 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 content area. A litmus test I used to assess flexibility is if it is possible to add custom fields to archive templates.
Let’s look at the cast of characters. I’m going to discuss Advanced Custom Fields Pro, Beaver Themer, Brizy Pro, Crocoblocks, Divi, Dynamic Content for Elementor, Elementor Pro, Meta Box, Oxygen, Pods, Themify Custom Post Type Builder, and Toolset. In some cases I have a basic walk-through of the tool, in which case I’ll include a link to that review, but in general, this is a high-level comparison where I 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 considered in this comparison 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, support for advanced field types, and fine level flexibility.
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|
|Dynamic Content for Elementor||N||N||Y||Y|
|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 many 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.
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.
ACF has a feature rich and very popular free version and a Pro version that adds repeater fields, the ability to create ACF Blocks using PHP, the Flexible Content Field, and the ability to use ACF fields on admin options pages.
Pros: ACF Pro is regularly updated and is GPL. It has good documentation and support, and there are lots of online resources. ACF is the most widely used tool for adding custom fields with more than 1 million active installs of the free version. 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 additional 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 and all of the solutions mentioned here for creating templates support ACF. 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 costs $249 US dollars a year for the unlimited site version. The free version is available in the WordPress plugin directory.
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 display 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 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.
Beaver tools are oft cited for their stability, which is a boon for those offering care plans. Also, the HTML output is relatively clean and lean which helps to keep the site performant.
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. Brizy Pro will has 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. Members of the Brizy team are active on social media and support is responsive (if the issue is one they can help with).
Cons: Active development of Brizy is still ongoing. The API for third party addons hasn’t been released yet, so there isn’t any ecosystem to fill in the gaps. The rendered code is very verbose and not as clean as some of the other options.
Additional Information: There is a $299 lifetime option which will eventually be discontinued. The license type for the Pro version is not yet known. The Brizy team also has a separate hosted cloud version called Brizy Cloud. It is easy to use and has some interesting features and some integrations with the Brizy plugin. Access to Brizy Cloud is included in the subscription to the WordPress plugin.
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. There is advanced functionality available for edge cases.
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. Some of the advanced using options are difficult to figure out. The Crocoblock team has started to include Gutenberg support, but this is still in development. Consequently, your Custom Post Type solution is generally tied to the Elementor page builder.
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 good option. It is also an attractive option for people who are 100% committed to the Elementor ecosystem. The lifetime unlimited site option is currently $750, which is pretty expensive.
The Divi Builder is one of the first page builders. It is integrated with the Divi and Extra themes or available as a stand-alone plugin. In addition to an annual subscription model, Divi is also available as a lifetime purchase.
Divi started out as a back-end builder and later they added a front-end editor as well. The separate Divi Builder plugin was created as a counter to claims that using the Divi theme, with the built-in builder, resulted in theme lock in. Using the plugin, users can switch themes without losing content.
Divi added a Theme Builder component late 2019 which provides the ability to create the full range of theme templates, including headers and footers.
Pros: Divi is the flagship product from Element Themes and even after a number of years is still under active development with frequent new features. Layout packs for Divi are released at an impressive rate of twice a week. Divi is GPL licensed.
Cons: When disabled, the Divi Builder leaves behind a bunch of shortcodes intermixed with the content. This needs to be cleaned out if discontinuing use of the builder. Also, Divi is one of the builders that adds a lot of extra HTML elements to support the builder features, which is not clean and performant as some of the other options.
The front-end editor allows for in-place editing but the interface is somewhat confusing. You will need to use another tool for creating the CPTs and custom fields. While you can create archives for CPTs, the ability to use custom fields in archives isn’t currently available.
Additional Information: Divi is very popular and has several large community groups on Facebook.
Divi has the ability to use dynamic data for custom fields and “theming” features. You can use the builder with CPTs. Divi has frequent updates which sometimes require attention. There is a lifetime unlimited plan available for $249.
Dynamic Content for Elementor
Like the Crocoblock Suite, Dynamic Content for Elementor (DCE) is an addon for the Elementor Page Builder. However, while Crocoblock provides many standard Elementor widgets and solutions, DCE focuses more on unique widgets and extensions. DCE has the ability to create content templates for core post types as well as Custom Post Types. It supports ACF, Toolset and Pods, including relationship fields. It works with both Elementor Free and Pro.
Pros: DCE has the most extensive support for Advanced Custom Fields of any solution considered here. There is a great deal of flexibility when creating templates and it is possible to use custom fields in archive templates.
Cons: When working with DCE I sometimes encountered glitches that had to be worked around. The documentation doesn’t include many examples and so it can be difficult to figure out how some of the features work. You will need to use another tool for creating the Custom Post Types.
Additional Information: Dynamic Content for Elementor adds the dynamic data option for widgets in both Elementor Free and third-party addons, which means these can be using in templates. The lifetime price for 1,000 sites is $399.
Elementor is the most popular WordPress page builder. There is a free version and a premium Pro version. Elementor Pro includes a Theme Builder, a Form Builder, and a Popup Builder.
The theming features are easy to use and 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.
Pros: You can use Elementor Pro to create templates for built in post types, CPTs, create template parts, headers, footers, and 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. Elementor Pro is GPL licensed.
Cons: Elementor Pro does not have support for conditional logic and display (other than for device types). It is not possible to use custom fields in archive templates. There are a number of 3rd party solutions to fill in these gaps.
Elementor is one of the builders that adds a lot of extra HTML elements to support the builder features, such as the advanced animations and style options. This results in page output which is not as clean and performant as some of the other options.
Additional Information: The lack of conditional logic reinforces my impression that Elementor targets the designer community more than the developer community. Meta Box has an extension for using Meta Box fields with Elementor Pro. The unlimited site license is $199 a year.
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, custom taxonomies, 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 more than 47 field types and 31 plugin extensions, covering the range from front-end submissions to custom database tables on the back-end. Like ACF, Meta Box has the ability to create Blocks for Custom Post Types using PHP. It also has a Views extension for creating template parts that can be used with shortcodes to show the dynamic data on the front end.
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. 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. It has a loop builder and Gutenberg block builder.
I created a post showing how to create single and archive templates using 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 builder is very flexible and it is possible to include custom fields in archive templates. Oxygen is GPL licensed.
Of all of the builders considered here, Oxygen is known for outputting straight HTML without a lot of the extra DIV elements that other builders use to support animations and more elaborate designs. Sights created with Oxygen generally score well on the various speed tests.
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. The plugin is currently priced at $169 as a lifetime one time purchase.
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 available 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 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. The Pods programmer API is powerful and appreciated by programmers. Many Pods users are enthusiastic and willing to help others and the project has an active Slack channel for help. The bi-directional relationship feature is easy to use.
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. The release schedule is inconsistent.
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 plugin 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. Support is good. You can include custom fields in archive templates.
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. The Post Type Builder has been stable, but some of the other Themify products sometimes have update glitches.
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 or want a simple all-in-one solution, the Themify Post Type Builder makes sense for simple to medium use cases. The lifetime club option costs $249 and 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, and Views for creating templates using HTML and Bootstap. There is also a maps plugin and a limited forms plugin for front-end submissions, along with other plugins for things like access management. The Views plugin provides options for creating search forms and complex displays with conditional logic beyond just template usage logic.
Toolset has recently released the Toolset Blocks plugin, which is a reimangined Views plugin that uses the Gutenberg builder. Toolset Blocks lets you create the single and archive templates using the drag and drop Gutenber editor and is much easier to use than the now dated Views option.
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 version of the Views plugin for use with WooCommerce. The Toolset Blocks plugin provides a modern and easy interface for creating templates.
Toolset is actively developed and has good support. It offers a complete solution from CPT creation to the most complex output requirements. Toolset plugins are GPL.
Cons: The Toolset documentation can be difficult to find. While Toolset handles more complex scenarios than other options, edge cases will require being a power user or developer to realize. Toolset used to integrate with popular page builders, but there were sometimes glitches when third party builders were updated. Now that Toolset has its Gutenberg workflow, they are discouraging using the template features of page builders. Some will be unhappy that they cannot use their premium page builder for creating templates.
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.
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. Themer is more straightforward, but Toolset handles 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.