WordPress Custom Post Type Generator

WordPress 2.9 - 3.x Compatible

Here’s a handy tool to help you create a Custom Post Type for WordPress. Using this tool, you can quickly generate the code needed to paste into your functions.php file. Tool tips will appear to help you decide which options to choose. However, if you’re in need of more explanation, visit the WordPress Codex page for register_post_type(). Report suggestions or bugs to our Contact page. Till then, happy post typin’!

The WordPress Custom Post Type Generator is not available on mobile devices or narrow browser windows. If you're on a non-mobile device, try maximizing your browser.

  • Must be unique. Try using a prefix (e.g. o3_post_type).
    • General name for the post type, usually plural.
    • Name for one object of this post type. Defaults to value of name.
    • The add new text. The default is Add New for both hierarchical and non-hierarchical types.
    • The all items text used in the menu. Default is the Name label.
    • The add new item text. Default is Add New Post / Add New Page.
    • The edit item text. Default is Edit Post / Edit Page.
    • The new item text. Default is New Post / New Page.
    • The view item text. Default is View Post / View Page.
    • The search items text. Default is Search Posts / Search Pages.
    • THe not found text. Default is No posts found / No pages found.
    • The not found in trash text. Default is No posts found in Trash / No pages found in Trash.
    • The parent text. This string isn't used on non-hierarchical types. In hierarchical ones the default is Parent Page:
    • The menu name text. This string is the name to give menu items. Defaults to value of name.
  • (optional) A short descriptive summary of what the post type is. Default: blank.
  • (optional) Whether a post type is intended to be used publicly either via the admin interfaces or by front-end users. Default: false
  • Whether to exclude posts with this post type from front end search results. Default: value of the opposite of the public argument.
  • (optional) Whether queries can be performed on the front end as part of the parse_request(). Default: value of the public argument.
  • (optional) Whether to generate a defualt UI for managing this post type in the admin. Default: value of public argument.
  • (optional) Whether post_type is available for selection in navigation menus. Default: value of public argument.
  • (optional) Whether to show the post type in the admin menu. show_ui must be true. Default: value of show_ui argument.
  • (optional) Whether to make this post type available in the WordPress admin bar. Default: value of the show_in_menu argument.










  • (optional) The position in the menu order the post type should appear. show_in_menu must be true. Default: null - defaults to below Comments
  • (optional) The url to the icon to be used for this menu. Default: null - defaults to the posts icon. Leave empty for null.
  • (optional) The string to use to build the read, edit, and delete capabilities. May be passed as an array to allow for alternative plurals when using this argument as a base to construct the capabilities, e.g. array(story','stories'). By default the capability_type is used as a base to construct capabilities. Default: post. Note: Currently, only Post or Page are supported by this generator.
  • (optional) Whether the post type is hierarchical (e.g. page). Allows Parent to be specified. Default: false.










  • (optional) An alias for calling add_post_type_support() directly. Default: title and editor.
  • (optional) Enables post type archives. Will use $post_type as archive slug by default. Default: false.
    • (optional) Triggers the handling of rewrites for this post type. To prevent rewrites, set to false by putting no content in these fields. Default: true and uses $post_type as slug.
    • (optional) Triggers the handling of rewrites for this post type. To prevent rewrites, set to false by putting no content in these fields. Default: true and uses $post_type as slug. This string will preprend the slug with a front base.
  • (optional) Sets the query_var key for this post type. Default: true - set to $post_type.
  • (optional) Enables exporting of this post_type. Default: true.

How We’ll Work For You

Our process is unique. We’ll guide you through our 5-Step Process that will yield an incredible, hand-crafted, and well-made website. This process is defined to maximize collaboration between you and us. Learn about your journey from strategy to launch here.

Learn About Our Process

How Much Is It

This is our most popular question. All of our projects are unique and are not template based. Since each project is different, we’ll need to know a bit more about you to establish a budget. Click below to get a quote.

Get A Quote