Custom Post Type Overview
The tutorial overviews the main features of Custom Post Types, and details how to create the CPTs, and manage their settings using the JetEngine plugin for Elementor and Gutenberg.
CPT Location in the Dashboard
CPTs are located at the JetEngine > Post Types tab of the WordPress dashboard.
The Post Types tab displays the list of CPT built by the JetEngine plugin. To see all CPTs created by other plugins, move the Built-in switcher.
The “Add New” button creates a new CPT, and the “Edit” link allows editing an already created CPT.
Settings of the CPTs
The Add New Post Type tab has the following groups of settings:
- General Settings;
- Labels;
- Advanced Settings;
- Meta fields.
General Settings
The General Settings tab has the following settings:
- Post Type Name field to type a unique name for the CPT. This field allows the usage of upper or lowercase letters, numbers, hyphens, underscores, and punctuation marks;
- Post Type Slug field to type a slug for your post type. After filling in the Post Type Name field, the post type slug will be added automatically. The slug should be unique. Users can add a custom slug and should use lowercase letters only, numbers, hyphens, or underscores. The slug is the same for all posts created by this CPT and is displayed in the URL field of every post (here, the properties slug).
The tutorial details How to Create and Change WordPress Slug & Permalinks.
- `Edit post type/meta box` link toggle, if enabled, adds the `Edit post type/meta box` link to the post edit page to edit the structure of fields in posts more conveniently. It creates a shortcut (the gear sign) from every post-editing page of the current CPT to the meta field editing page.
- Hide meta field names toggle, if enabled, hides meta field names on the post edit page.
Labels
The Labels settings tab specifies the texts displayed for the CPT posts on the dashboard (on post creation and edit screens). All Labels settings refer to the current CPT but do not cover all other CPTs.
The Labels settings include the following 20 fields to type texts instead of the default texts on the appropriate buttons:
- Singular name field to type a name for one object of this post type;
- Add New field to type a text instead of the default “Add New” text for both hierarchical and non-hierarchical post types;
- Add New Item, New Item, Edit Item, etc.
Advanced Settings
The Advanced settings are:
- Is Public toggle is enabled by default. It makes the CPT visible and editable to authors and readers on the dashboard. If enabled, it turns off the Exclude From Search toggle and turns on the Publicly Queryable and Show Admin UI toggles;
- Exclude From Search toggle, if enabled, excludes posts with this post type from front-end search results;
- Publicly Queryable toggle is enabled by default. It allows performing queries referred to this CPT on the front end as part of parse_request();
- Show Admin UI is enabled by default and generates a default UI for managing this post type in the admin. If disabled, the CPT will disappear from the dashboard.
- Show in Admin Menu, Show in Nav Menu, and Show in Rest API toggles are enabled by default. They accordingly set the CPT visibility in the Admin Menu, Navigation Menu, or REST API.
This tutorial explains How to Display Custom Content Type Items Using REST API.
- Register Query Var toggle is activated by default. It sets the query_var key for this post type and registers the query variable for this CPT. (The query_var defines a query for WordPress posts, and the query variables are the variables in the query string that determines the results in the query performed against the database.)
Read about the Query Builder Posts Query Type in this tutorial.
- Rewrite toggle is enabled by default. This toggle triggers the handling of rewrites for this post type. (The WP_rewrite is a WordPress class for managing the rewrite rules allowing the Permalink feature usage. It generates the rewrite rules from values in the database.) To prevent rewrites, set it to false.
- Rewrite Slug field allows typing a custom permalink structure slug, which defaults to the post-type slug. Users can choose to rewrite with the front.
- Rewrite With Front toggle, if enabled, allows the permastruct (permalink structure) to prepend with WP_Rewrite::$front;
- Capability Type field to type what WordPress string used to read, edit, and delete capabilities of this CPT;
- Has Archive toggle if enabled, enables the possibility to have post-type archives for this CPT;
Read How to Create Archive and Single Templates for Custom Post Type in this tutorial.
- Hierarchical toggle, if enabled, allows hierarchically adding the posts of this CPT into a site. The toggle grouping of posts with the hierarchical option in a certain way you need — set a parent page and establish order.
- Menu Position field to type a number of this CPT is shown among other CPTs on the dashboard;
- Menu Icon menu allows selecting a CPT icon visible in the admin menu:
- Supports drop-down menu allows the selection of additional support blocks, which will be shown on the CPT’s editor page. It registers support of specific feature(s) for a current post type.
Meta Fields
Add the necessary meta fields to the CPT.
This tutorial explains How to create a custom meta field with the JetEngine plugin.
After adding the necessary meta fields, press the “Add New Post Type” button.
Additionally, users can add Taxonomies to the CPT posts with categories.
The tutorial explains How to set up Posts Categories.
Users can link the CPT with other WordPress objects using the Relations feature, including relationships from one CPT to another CPT.
Read How to Create Relationships Between Posts in this tutorial.
Custom Post Type Data Storage in WordPress
WordPress saves all created CPT in its base: phpMyAdmin > croco > wp_posts.
Settings added by the JetEngine plugin to the CPT are saved in the table:
phpMyAdmin > croco > wp_jet_post_types.
All posts built on the CPT are presented on the WordPress dashboard:
That’s all about the general settings of the Custom Post Types built by the JetEngine plugin.