Wordpress Custom Post Type Generator

This is a custom post type generator for Wordpress custom post types that asks for the minimum amount of potential inputs to create all the code you will need for a new custom post type. There are several arguments within the arguments array that this tool does not give you configurable options for, however it does output basic options that you can then modify on your own. Once you've copied the code below, simply paste it in to the end of your functions.php file, or wherever you have currently placed your other custom post types. To be 100% safe, always remember to back up your functions.php file before making any updates to it.

Function Name

Text Domain

Post Type Key

Name (Singular)

Link To Taxonomies


Name (Plurarl)

It's advised you update these fields to correspond with your custom post type

Menu Name

Add New

You can update these fields as you see fit, but feel free to leave them as is

Insert Item Into

Admin Bar Name

New Item

Not Found In Trash

Uploaded To This Item


Edit Item

Featured Image

Items List

Parent Item

Update Item

Set Featured Image

Items List Navigation

All Items

View Item

Remove Featured Image

Filter Items List

Add New Item

Search Item

Use As Featured Image

Not Found


Exclude From Search

Enable Export

Admin Sidebar Icon

Full List Of Icons: Dashicons

Show In Admin Sidebar?

Show In Admin Bar?


Publicly Queryable

Custom Query

Permalink Rewrite

URL Slug


Use URL Slug


Once you generate your code, copy the output below and paste in to your functions.php file

                        // Register Custom Post Type
                        function custom_post_type() {
                        $labels = array(
                        'name'                  => _x( 'Post Types', 'Post Type General Name', 'text_domain' ),
                        'singular_name'         => _x( 'Post Type', 'Post Type Singular Name', 'text_domain' ),
                        'menu_name'             => __( 'Post Types', 'text_domain' ),
                        'name_admin_bar'        => __( 'Post Type', 'text_domain' ),
                        'archives'              => __( 'Item Archives', 'text_domain' ),
                        'parent_item_colon'     => __( 'Parent Item:', 'text_domain' ),
                        'all_items'             => __( 'All Items', 'text_domain' ),
                        'add_new_item'          => __( 'Add New Item', 'text_domain' ),
                        'add_new'               => __( 'Add New', 'text_domain' ),
                        'new_item'              => __( 'New Item', 'text_domain' ),
                        'edit_item'             => __( 'Edit Item', 'text_domain' ),
                        'update_item'           => __( 'Update Item', 'text_domain' ),
                        'view_item'             => __( 'View Item', 'text_domain' ),
                        'search_items'          => __( 'Search Item', 'text_domain' ),
                        'not_found'             => __( 'Not found', 'text_domain' ),
                        'not_found_in_trash'    => __( 'Not found in Trash', 'text_domain' ),
                        'featured_image'        => __( 'Featured Image', 'text_domain' ),
                        'set_featured_image'    => __( 'Set featured image', 'text_domain' ),
                        'remove_featured_image' => __( 'Remove featured image', 'text_domain' ),
                        'use_featured_image'    => __( 'Use as featured image', 'text_domain' ),
                        'insert_into_item'      => __( 'Insert into item', 'text_domain' ),
                        'uploaded_to_this_item' => __( 'Uploaded to this item', 'text_domain' ),
                        'items_list'            => __( 'Items list', 'text_domain' ),
                        'items_list_navigation' => __( 'Items list navigation', 'text_domain' ),
                        'filter_items_list'     => __( 'Filter items list', 'text_domain' ),
                        $args = array(
                        'label'                 => __( 'Post Type', 'text_domain' ),
                        'description'           => __( 'Post Type Description', 'text_domain' ),
                        'labels'                => $labels,
                        'supports'              => array(),
                        'taxonomies'            => array( 'category', 'post_tag'),
                        'hierarchical'          => false,
                        'public'                => true,
                        'show_ui'               => true,
                        'show_in_menu'          => true,
                        'menu_position'         => 5,
                        'show_in_admin_bar'     => true,
                        'show_in_nav_menus'     => true,
                        'can_export'            => true,
                        'has_archive'           => true,
                        'exclude_from_search'   => false,
                        'publicly_queryable'    => true,
                        'capability_type'       => 'page',
                        register_post_type( 'post_type', $args );
                        add_action( 'init', 'custom_post_type', 0 );

About Proper Noun

Proper Noun is a web design studio that specializes in creating Wordpress Websites, e-commerce web desgin, and a wide variety of other web design and web development services. We have built a variety of websites, plugins, extensions and custom scripts for various Wordpress and WooCommerce websites. Get in touch with us to talk about what we can do for your WordPress website.