Home » Functions » register_post_type

WordPress is a content management system (CMS) that enables website owners to easily create and manage their content. The register_post_type function is one of the most important functions in WordPress as it allows developers to create custom post types.

A post type refers to the different types of content that can be created in WordPress. By default, WordPress comes with five post types: post, page, attachment, revision, and navigation menu. However, with the help of register_post_type, developers can create their own custom post types that are specific to their website’s needs.

This function takes two parameters – the first parameter is the name of the custom post type, and the second parameter is an array of options that define the characteristics of the post type. These options include the labels, description, and settings for the post type.

Some of the most common uses for register_post_type include creating custom post types for events, products, portfolios, and testimonials. By creating custom post types, website owners can better organize and manage their content, and provide a better user experience for their visitors.

Here is an example usage code for register_post_type:

function custom_post_type() {

    $args = array(
        'public' => true,
        'label' => 'Books',
        'supports' => array( 'title', 'editor', 'thumbnail' ),
        'taxonomies' => array( 'category', 'post_tag' ),
        'rewrite' => array( 'slug' => 'books' ),
        'menu_icon' => 'dashicons-book',
        'has_archive' => true
    register_post_type( 'book', $args );
add_action( 'init', 'custom_post_type' );

In the above example, we’re registering a custom post type called "Book" with various options. The "supports" option specifies which post type features are supported, the "taxonomies" option specifies which taxonomies (if any) the post type is associated with, the "rewrite" option specifies the URL slug for the post type, and the "menu_icon" option specifies the icon to use for the post type in the WordPress admin menu.

I hope this explanation helps clarify the register_post_type function in WordPress and how it can be used to create custom post types.

Learn More on

Register an account to save your snippets or go Pro to get more features.