WP Post Type Generator


Function name
Translator text domain
Add Child Themes Support

Post Type

Post type key used in code
Post type singular name
A short summary of the post type
Taxonomies name
Post type plural name
Hierarchical post types allows descendants


Auto populate label based on singular and plural label name


Post type exclude from search
Enables post type archives
Enables post type export
Set custom archive slug


Show post type in the admin UI
Post type in menu
Range from 5-100
Show post type in the admin UI
Show post type UI in the admin
Full URL for icon or Dashicon class
Show post type in Navigation Menus


Direct query variable used in WP_Query
Custom query variable.
Direct query variable used in WP_Query


Set user capabilities to manage post type
Used as a base to construct capabilities

Rest API

Show post type in REST API
REST API Controller class name

// Register Custom Post Type
function custom_post_type() {

    $lables = array(
        'name'                  => __( 'Events', 'text_domain)' ),
        'singular_name'         => __( 'Event', 'text_domain' ),
        'menu_name'             => __( 'Events', 'text_domain' ),
        'name_admin_bar'        => __( 'Event', 'text_domain' ),
        'archives'              => __( 'Event Archives', 'text_domain' ),
        'attributes'            => __( 'EventAttributes', 'text_domain' ),
        'parent_item_colon'     => __( 'Parent Event:', 'text_domain' ),
        'all_items'             => __( 'All Events', 'text_domain' ),
        'add_new_item'          => __( 'Add New Event', 'text_domain' ),
        'add_new'               => __( 'Add New', 'text_domain' ),
        'new_item'              => __( 'New Event', 'text_domain' ),
        'edit_item'             => __( 'Edit Event', 'text_domain' ),
        'update_item'           => __( 'Update Event', 'text_domain' ),
        'view_item'             => __( 'View Event', 'text_domain' ),
        'view_items'            => __( 'Views Event', 'text_domain' ),
        'search_items'          => __( 'Search Events', 'text_domain' ),
        'not_found'             => __( 'Not found', 'text_domain' ),
        'not_found_in_trash'    => __( 'Not found in trash', 'text_domain' ),
        'featured_image'        => __( 'Featured Image for this event', 'text_domain' ),
        'set_featured_image'    => __( 'Set featured image for this event', 'text_domain' ),
        'remove_featured_image' => __( 'Remove featured image for this event', 'text_domain' ),
        'use_featured_image'    => __( 'Use as featured image for this event', 'text_domain' ),
        'insert_into_item'      => __( 'Insert into event', 'text_domain' ),
        'uploaded_to_this_item' => __( 'Uploaded to this event', 'text_domain' )
        'items_list'            => __( 'Events list', 'text_domain' ),
        'items_list_navigation' => __( 'Events list navigation', 'text_domain' ),
        'filter_items_list'     => __( 'Filter events list', 'text_domain' ),

    $args = array(
        'label'                 => __( 'Event', 'text_domain' ),
        'description'           => __( 'Event Post Type Description', 'text_domain' ),
        'labels'                => $lables,
        'supports'              => array( 'title', 'editor', 'thumbnail' ),
        'taxonomies'            => array( 'event_location', 'event_type' ),
        'hierarchical'          => false,
        'public'                => true,
        'show_ui'               => true,
        'show_in_menu'          => true,
        'menu_position'         => 5,
        'menu_icon'             => 'dashicons-megaphone',
        'show_in_admin_bar'     => true,
        'show_in_nav_menus'     => true,
        'can_export'            => true,
        'has_archive'           => false,
        'exclude_from_search'   => false,
        'publicly_queryable'    => true,
        'capability_type'       => 'post',
        'show_in_rest'          => true,

    register_post_type( 'event', $args );


add_action( 'init', 'custom_post_type', 0 );

What is post type?

The post types are the way to manage the different variety of content. By default WordPress only allow five types of content posts, pages, revision, attachment, and nav menu.

You can make your own custom post type to show the type of material you want to show on your website. Like books, movies, reviews, items, products, recipes, courses, faqs, and many more you can create.

You can create your own custom post type in programmatically way or with the help of plugin. For more details you can check the tutorial here. But if you don't know programming then you can use this tool to create a new post type.

What is WP Post Type Generator?

WP Post Type Generator is a free online tool to create a custom wordpress post type. You can make unlimited custom post type using this tool.

You can use this tool in simple and easy way to create custom post types in your wordpress site and manage them differently without mixing them into default post types like pages and posts, etc.

Note: This site does not store any type of data, password or other sensitive data, so that you can safely fill in your information.

How to use WP Post Type Generator?

To use this tool, you simply need to select corresponding tab and fill the required fields and then click on the "Generate" button.

Follow the below steps:

  1. Select the tab one by one
  2. Fill the required fields. Some of fields have default values but you can change them as per your need.
  3. Click on the "Generate" button
  4. Generated code will shown in the result area and you can copy the code and use it.
  5. To generate new file code click on the "Refresh" button,