Post Types API

Framework for registering and managing WordPress post types.

Since: 2.9.0
Source: wp-includes/post.php, wp-includes/class-wp-post-type.php

Components

Component Description
functions.md Core registration and retrieval functions
class-wp-post-type.md Post type object (since 4.6.0)
hooks.md Actions and filters

Registration Flow

init
    └── register_post_type()
            └── new WP_Post_Type()
                    ├── set_props()
                    ├── add_supports()
                    ├── add_rewrite_rules()
                    ├── register_meta_boxes()
                    ├── add_hooks()
                    └── register_taxonomies()
            └── do_action('registered_post_type')
            └── do_action('registered_post_type_{$post_type}')

Unregistration Flow

unregister_post_type()
    └── WP_Post_Type
            ├── remove_supports()
            ├── remove_rewrite_rules()
            ├── unregister_meta_boxes()
            ├── remove_hooks()
            └── unregister_taxonomies()
    └── do_action('unregistered_post_type')

Built-in Post Types

Post Type Description
post Standard blog posts
page Static pages (hierarchical)
attachment Media library items
revision Post revisions
nav_menu_item Navigation menu items
custom_css Custom CSS (Customizer)
customize_changeset Customizer changesets
oembed_cache oEmbed response cache
user_request Privacy/data requests
wp_block Reusable blocks (patterns)
wp_template Block templates
wp_template_part Block template parts
wp_global_styles Global styles
wp_navigation Navigation menus
wp_font_family Font families
wp_font_face Font faces

Quick Example

add_action( 'init', function() {
    register_post_type( 'book', array(
        'label'              => __( 'Books' ),
        'public'             => true,
        'show_in_rest'       => true,
        'supports'           => array( 'title', 'editor', 'thumbnail' ),
        'has_archive'        => true,
        'rewrite'            => array( 'slug' => 'books' ),
        'menu_icon'          => 'dashicons-book',
    ) );
} );