Documentation / Tutorials / Triggers

Creating Custom Post Types (CPT)

/ Triggers / Creating Custom Post Types (CPT)

CPT is made up of 3 parts. The cpt itself, taxonomy and meta fields

Defining Post type

Here you need to define the cpt details like singular_label, plural_label and slug. You can customize the other parameters as per need.

module.singular_label: Singular name of post type
module.plural_label: Plural name of post type
post slug: CPT slug (max. 20 characters, cannot contain capital letters or spaces)

 

[aw2.set module.singular_label='name' /]
[aw2.set module.plural_label='names' /]
[aw2.register post slug='your-cpt-slug']
{   
  "label" : "[aw2.get module.plural_label /]",
  "public" : true,
  "exclude_from_search":true,
  "publicly_queryable":false,
  "show_in_nav_menus":false,
  "show_ui" : true,
  "show_in_menu" : true,
  "capability_type" : "post",
  "map_meta_cap" : true,
  "hierarchical" : false,
  "query_var" : true,
  "supports" : [ "title","editor","page-attributes","thumbnail" ],
  "rewrite" : {"slug":"testimonial"},
  "labels" : {
    "name" : "[aw2.get module.plural_label /]",
    "singular_name" : "[aw2.get module.singular_label /]",
    "menu_name" : "[aw2.get module.plural_label /]",
    "add_new" : "Add [aw2.get module.singular_label /]",
    "add_new_item" : "Add New [aw2.get module.singular_label /]",
    "edit" : "Edit",
    "edit_item" : "Edit [aw2.get module.singular_label /]",
    "new_item" : "New [aw2.get module.singular_label /]",
    "view" : "View [aw2.get module.singular_label /]",
    "view_item" : "View [aw2.get module.singular_label /]",
    "search_items" : "Search [aw2.get module.plural_label /]",
    "not_found" : "No [aw2.get module.plural_label /] Found",
    "not_found_in_trash" : "No [aw2.get module.plural_label /] Found in Trash",
    "parent" : "Parent [aw2.get module.singular_label /]"
  }
}
[/aw2.register]

 

Taxonomy

module.singular_label: Singular name of taxonomy
module.plural_label: Plural name of taxonomy
post slug: CPT slug

Note: taxonomy slug and post_type slug names should be unique.

 

[aw2.set module.singular_label='Category' /]
[aw2.set module.plural_label='categories' /]
[aw2.register taxonomy slug='as_category_slug' post_type='as_category']
{   
    "label" :"[aw2.get module.plural_label /]",
    "hierarchical" : true,
    "show_ui":true,
    "show_admin_column":false,
    "show_in_nav_menus":false,
    "query_var" : true,
    "rewrite" : true,
    "labels" : {
        "name" : "[aw2.get module.plural_label /]",
        "singular_name" : "[aw2.get module.singular_label /]",
        "menu_name" : "[aw2.get module.plural_label /]",
        "add_new" : "Add [aw2.get module.singular_label /]",
        "add_new_item" : "Add New [aw2.get module.singular_label /]",
        "edit" : "Edit",
        "edit_item" : "Edit [aw2.get module.singular_label /]",
        "new_item" : "New [aw2.get module.singular_label /]",
        "view" : "View [aw2.get module.singular_label /]",
        "view_item" : "View [aw2.get module.singular_label /]",
        "search_items" : "Search [aw2.get module.plural_label /]",
        "not_found" : "No [aw2.get module.plural_label /] Found"
    }
}
[/aw2.register]

 

Meta

You can create as many meta fields you need. Use the following code

Meta ID:
id:
title:
object_types

field id:
name:
id:
type:

 

	[aw2.register metabox part=start id=name]
	{
			"id"           :"name",
			"title"         :"Title for meta",
			"object_types"  : [  "your CPT slug" ],
			"context"      :"normal",
			"priority"     :"high",
			"show_names"    : true
	}
	[/aw2.register]
  
  [aw2.register metabox part=field id=Surname]
	{
			"name":"Your Surname",
			"id"   : "surname",
			"type":"text"
	}
	[/aw2.register]

 

Categories
Most Popular