WordPress create custom post type

WordPress create custom post type

WordPress provides awesome functionality to register custom post type. The register post type functionality allow us to create the new post type like Post, Page with custom fields and taxonomy. Today we learn how we can create WordPress create Custom Post Type.

We used register_post_type for creating the custom post type. register post type should invoke through “init” action. It will not work properly If we called before init action. you can use ‘register_post_type’ action in themes and plugins.

Registering custom post type is awesome functionality for creating user-friendly plugins functionality like Slider listing, Book listing, Portfolio listing etc.. Also, it provides add and edit interface, We don’t need to take rush for add, Edit, Filter functionality.

WordPress create Custom Post Type

Let’s see the fastest and easy way for registering our custom post type

function thecodingstuff_custom_posttype() {
    $args = array(
      'public' => true,
      'label'  => 'Sliders'
    register_post_type( 'thecodingstuff_slider', $args );
add_action( 'init', 'thecodingstuff_custom_posttype' );

Above we learn the basic syntax for registering the custom WordPress Post type. There are we have passed single label “Sliders” for thecodingstuff_slider post type. Also, WordPress provides functionality to customize all Labels for the post type.

Let’s see how we can create the register post type with customize the labels.

function thecodingstuff_slider_posttype() {
    $labels = array(
        'name'               => _x( 'Sliders', 'post type general name', 'thecodingstuff' ),
        'singular_name'      => _x( 'Slider', 'post type singular name', 'thecodingstuff' ),
        'menu_name'          => _x( 'Sliders', 'admin menu', 'thecodingstuff' ),
        'name_admin_bar'     => _x( 'Slider', 'add new on admin bar', 'thecodingstuff' ),
        'add_new'            => _x( 'Add New', 'Slider', 'thecodingstuff' ),
        'add_new_item'       => __( 'Add New Slider', 'thecodingstuff' ),
        'new_item'           => __( 'New Slider', 'thecodingstuff' ),
        'edit_item'          => __( 'Edit Slider', 'thecodingstuff' ),
        'view_item'          => __( 'View Slider', 'thecodingstuff' ),
        'all_items'          => __( 'All Sliders', 'thecodingstuff' ),
        'search_items'       => __( 'Search Sliders', 'thecodingstuff' ),
        'parent_item_colon'  => __( 'Parent Sliders:', 'thecodingstuff' ),
        'not_found'          => __( 'No Sliders found.', 'thecodingstuff' ),
        'not_found_in_trash' => __( 'No Sliders found in Trash.', 'thecodingstuff' )

    $args = array(
        'labels'             => $labels,
        'description'        => __( 'Thecodingstuff Sliders', 'thecodingstuff' ),
        'public'             => true,
        'publicly_queryable' => true,
        'show_ui'            => true,
        'show_in_menu'       => true,
        'query_var'          => true,
        'rewrite'            => array( 'slug' => 'thecodingstuff_slider' ),
        'capability_type'    => 'post',
        'has_archive'        => true,
        'hierarchical'       => false,
        'menu_position'      => null,
        'supports'           => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )

    register_post_type( 'thecodingstuff_slider', $args );

add_action( 'init', 'thecodingstuff_slider_posttype' );

So it’s too easy to create the custom post type on WordPress.

If you face any issue with creating the new post type, write the comment below.