create_initial_post_types

The timeline below displays how wordpress function create_initial_post_types has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 6.5

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type registration.
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * See {@see 'init'}.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    WP_Post_Type::reset_default_labels();
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new from admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'menu_icon' => 'dashicons-admin-post',
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
        'show_in_rest' => true,
        'rest_base' => 'posts',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new from admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'menu_icon' => 'dashicons-admin-page',
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
        'show_in_rest' => true,
        'rest_base' => 'pages',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => __('Add New Media File'), 'edit_item' => __('Edit Media'), 'view_item' => ('1' === get_option('wp_attachment_pages_enabled')) ? __('View Attachment Page') : __('View Media File'), 'attributes' => __('Attachment Attributes')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'menu_icon' => 'dashicons-admin-media',
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
        'show_in_rest' => true,
        'rest_base' => 'media',
        'rest_controller_class' => 'WP_REST_Attachments_Controller',
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
        'map_meta_cap' => true,
        'capability_type' => array('edit_theme_options', 'edit_theme_options'),
        'capabilities' => array(
            // Meta Capabilities.
            'edit_post' => 'edit_post',
            'read_post' => 'read_post',
            'delete_post' => 'delete_post',
            // Primitive Capabilities.
            'edit_posts' => 'edit_theme_options',
            'edit_others_posts' => 'edit_theme_options',
            'delete_posts' => 'edit_theme_options',
            'publish_posts' => 'edit_theme_options',
            'read_private_posts' => 'edit_theme_options',
            'read' => 'read',
            'delete_private_posts' => 'edit_theme_options',
            'delete_published_posts' => 'edit_theme_options',
            'delete_others_posts' => 'edit_theme_options',
            'edit_private_posts' => 'edit_theme_options',
            'edit_published_posts' => 'edit_theme_options',
        ),
        'show_in_rest' => true,
        'rest_base' => 'menu-items',
        'rest_controller_class' => 'WP_REST_Menu_Items_Controller',
    ));
    register_post_type('custom_css', array(
        'labels' => array('name' => __('Custom CSS'), 'singular_name' => __('Custom CSS')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array('title', 'revisions'),
        'capabilities' => array('delete_posts' => 'edit_theme_options', 'delete_post' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_post' => 'edit_css', 'edit_posts' => 'edit_css', 'edit_others_posts' => 'edit_css', 'edit_published_posts' => 'edit_css', 'read_post' => 'read', 'read_private_posts' => 'read', 'publish_posts' => 'edit_theme_options'),
    ));
    register_post_type('customize_changeset', array(
        'labels' => array('name' => _x('Changesets', 'post type general name'), 'singular_name' => _x('Changeset', 'post type singular name'), 'add_new' => __('Add New Changeset'), 'add_new_item' => __('Add New Changeset'), 'new_item' => __('New Changeset'), 'edit_item' => __('Edit Changeset'), 'view_item' => __('View Changeset'), 'all_items' => __('All Changesets'), 'search_items' => __('Search Changesets'), 'not_found' => __('No changesets found.'), 'not_found_in_trash' => __('No changesets found in Trash.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array('title', 'author'),
        'capability_type' => 'customize_changeset',
        'capabilities' => array('create_posts' => 'customize', 'delete_others_posts' => 'customize', 'delete_post' => 'customize', 'delete_posts' => 'customize', 'delete_private_posts' => 'customize', 'delete_published_posts' => 'customize', 'edit_others_posts' => 'customize', 'edit_post' => 'customize', 'edit_posts' => 'customize', 'edit_private_posts' => 'customize', 'edit_published_posts' => 'do_not_allow', 'publish_posts' => 'customize', 'read' => 'read', 'read_post' => 'customize', 'read_private_posts' => 'customize'),
    ));
    register_post_type('oembed_cache', array(
        'labels' => array('name' => __('oEmbed Responses'), 'singular_name' => __('oEmbed Response')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array(),
    ));
    register_post_type('user_request', array(
        'labels' => array('name' => __('User Requests'), 'singular_name' => __('User Request')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array(),
    ));
    register_post_type('wp_block', array(
        'labels' => array('name' => _x('Patterns', 'post type general name'), 'singular_name' => _x('Pattern', 'post type singular name'), 'add_new' => __('Add New Pattern'), 'add_new_item' => __('Add New Pattern'), 'new_item' => __('New Pattern'), 'edit_item' => __('Edit Block Pattern'), 'view_item' => __('View Pattern'), 'view_items' => __('View Patterns'), 'all_items' => __('All Patterns'), 'search_items' => __('Search Patterns'), 'not_found' => __('No patterns found.'), 'not_found_in_trash' => __('No patterns found in Trash.'), 'filter_items_list' => __('Filter patterns list'), 'items_list_navigation' => __('Patterns list navigation'), 'items_list' => __('Patterns list'), 'item_published' => __('Pattern published.'), 'item_published_privately' => __('Pattern published privately.'), 'item_reverted_to_draft' => __('Pattern reverted to draft.'), 'item_scheduled' => __('Pattern scheduled.'), 'item_updated' => __('Pattern updated.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'show_ui' => true,
        'show_in_menu' => false,
        'rewrite' => false,
        'show_in_rest' => true,
        'rest_base' => 'blocks',
        'rest_controller_class' => 'WP_REST_Blocks_Controller',
        'capability_type' => 'block',
        'capabilities' => array(
            // You need to be able to edit posts, in order to read blocks in their raw form.
            'read' => 'edit_posts',
            // You need to be able to publish posts, in order to create blocks.
            'create_posts' => 'publish_posts',
            'edit_posts' => 'edit_posts',
            'edit_published_posts' => 'edit_published_posts',
            'delete_published_posts' => 'delete_published_posts',
            // Enables trashing draft posts as well.
            'delete_posts' => 'delete_posts',
            'edit_others_posts' => 'edit_others_posts',
            'delete_others_posts' => 'delete_others_posts',
        ),
        'map_meta_cap' => true,
        'supports' => array('title', 'editor', 'revisions', 'custom-fields'),
    ));
    $template_edit_link = 'site-editor.php?' . build_query(array('postType' => '%s', 'postId' => '%s', 'canvas' => 'edit'));
    register_post_type('wp_template', array(
        'labels' => array('name' => _x('Templates', 'post type general name'), 'singular_name' => _x('Template', 'post type singular name'), 'add_new' => __('Add New Template'), 'add_new_item' => __('Add New Template'), 'new_item' => __('New Template'), 'edit_item' => __('Edit Template'), 'view_item' => __('View Template'), 'all_items' => __('Templates'), 'search_items' => __('Search Templates'), 'parent_item_colon' => __('Parent Template:'), 'not_found' => __('No templates found.'), 'not_found_in_trash' => __('No templates found in Trash.'), 'archives' => __('Template archives'), 'insert_into_item' => __('Insert into template'), 'uploaded_to_this_item' => __('Uploaded to this template'), 'filter_items_list' => __('Filter templates list'), 'items_list_navigation' => __('Templates list navigation'), 'items_list' => __('Templates list')),
        'description' => __('Templates to include in your theme.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => $template_edit_link,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => false,
        'show_in_menu' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'rest_base' => 'templates',
        'rest_controller_class' => 'WP_REST_Templates_Controller',
        'autosave_rest_controller_class' => 'WP_REST_Template_Autosaves_Controller',
        'revisions_rest_controller_class' => 'WP_REST_Template_Revisions_Controller',
        'late_route_registration' => true,
        'capability_type' => array('template', 'templates'),
        'capabilities' => array('create_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'read' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options'),
        'map_meta_cap' => true,
        'supports' => array('title', 'slug', 'excerpt', 'editor', 'revisions', 'author'),
    ));
    register_post_type('wp_template_part', array(
        'labels' => array('name' => _x('Template Parts', 'post type general name'), 'singular_name' => _x('Template Part', 'post type singular name'), 'add_new' => __('Add New Template Part'), 'add_new_item' => __('Add New Template Part'), 'new_item' => __('New Template Part'), 'edit_item' => __('Edit Template Part'), 'view_item' => __('View Template Part'), 'all_items' => __('Template Parts'), 'search_items' => __('Search Template Parts'), 'parent_item_colon' => __('Parent Template Part:'), 'not_found' => __('No template parts found.'), 'not_found_in_trash' => __('No template parts found in Trash.'), 'archives' => __('Template part archives'), 'insert_into_item' => __('Insert into template part'), 'uploaded_to_this_item' => __('Uploaded to this template part'), 'filter_items_list' => __('Filter template parts list'), 'items_list_navigation' => __('Template parts list navigation'), 'items_list' => __('Template parts list')),
        'description' => __('Template parts to include in your templates.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => $template_edit_link,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => false,
        'show_in_menu' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'rest_base' => 'template-parts',
        'rest_controller_class' => 'WP_REST_Templates_Controller',
        'autosave_rest_controller_class' => 'WP_REST_Template_Autosaves_Controller',
        'revisions_rest_controller_class' => 'WP_REST_Template_Revisions_Controller',
        'late_route_registration' => true,
        'map_meta_cap' => true,
        'capabilities' => array('create_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'read' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options'),
        'supports' => array('title', 'slug', 'excerpt', 'editor', 'revisions', 'author'),
    ));
    register_post_type('wp_global_styles', array(
        'label' => _x('Global Styles', 'post type general name'),
        'description' => __('Global styles to include in themes.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => '/site-editor.php?canvas=edit',
        /* internal use only. don't use this when registering your own post type. */
        'show_ui' => false,
        'show_in_rest' => false,
        'rewrite' => false,
        'capabilities' => array('read' => 'edit_theme_options', 'create_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options'),
        'map_meta_cap' => true,
        'supports' => array('title', 'editor', 'revisions'),
    ));
    $navigation_post_edit_link = 'site-editor.php?' . build_query(array('postId' => '%s', 'postType' => 'wp_navigation', 'canvas' => 'edit'));
    register_post_type('wp_navigation', array(
        'labels' => array('name' => _x('Navigation Menus', 'post type general name'), 'singular_name' => _x('Navigation Menu', 'post type singular name'), 'add_new' => __('Add New Navigation Menu'), 'add_new_item' => __('Add New Navigation Menu'), 'new_item' => __('New Navigation Menu'), 'edit_item' => __('Edit Navigation Menu'), 'view_item' => __('View Navigation Menu'), 'all_items' => __('Navigation Menus'), 'search_items' => __('Search Navigation Menus'), 'parent_item_colon' => __('Parent Navigation Menu:'), 'not_found' => __('No Navigation Menu found.'), 'not_found_in_trash' => __('No Navigation Menu found in Trash.'), 'archives' => __('Navigation Menu archives'), 'insert_into_item' => __('Insert into Navigation Menu'), 'uploaded_to_this_item' => __('Uploaded to this Navigation Menu'), 'filter_items_list' => __('Filter Navigation Menu list'), 'items_list_navigation' => __('Navigation Menus list navigation'), 'items_list' => __('Navigation Menus list')),
        'description' => __('Navigation menus that can be inserted into your site.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => $navigation_post_edit_link,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => true,
        'show_in_menu' => false,
        'show_in_admin_bar' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'map_meta_cap' => true,
        'capabilities' => array('edit_others_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'create_posts' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options'),
        'rest_base' => 'navigation',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
        'supports' => array('title', 'editor', 'revisions'),
    ));
    register_post_type('wp_font_family', array(
        'labels' => array('name' => __('Font Families'), 'singular_name' => __('Font Family')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'capabilities' => array('read' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options', 'create_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options'),
        'map_meta_cap' => true,
        'query_var' => false,
        'rewrite' => false,
        'show_in_rest' => true,
        'rest_base' => 'font-families',
        'rest_controller_class' => 'WP_REST_Font_Families_Controller',
        // Disable autosave endpoints for font families.
        'autosave_rest_controller_class' => 'stdClass',
    ));
    register_post_type('wp_font_face', array(
        'labels' => array('name' => __('Font Faces'), 'singular_name' => __('Font Face')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'capabilities' => array('read' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options', 'create_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options'),
        'map_meta_cap' => true,
        'query_var' => false,
        'rewrite' => false,
        'show_in_rest' => true,
        'rest_base' => 'font-families/(?P<font_family_id>[\d]+)/font-faces',
        'rest_controller_class' => 'WP_REST_Font_Faces_Controller',
        // Disable autosave endpoints for font faces.
        'autosave_rest_controller_class' => 'stdClass',
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of published posts. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of scheduled posts. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of draft posts. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending posts. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of private posts. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of trashed posts. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array(
        'label' => 'auto-draft',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'date_floating' => true,
    ));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-pending', array(
        'label' => _x('Pending', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending requests. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-confirmed', array(
        'label' => _x('Confirmed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of confirmed requests. */
        'label_count' => _n_noop('Confirmed <span class="count">(%s)</span>', 'Confirmed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-failed', array(
        'label' => _x('Failed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of failed requests. */
        'label_count' => _n_noop('Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-completed', array(
        'label' => _x('Completed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of completed requests. */
        'label_count' => _n_noop('Completed <span class="count">(%s)</span>', 'Completed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
}

WordPress Version: 6.4

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type registration.
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * See {@see 'init'}.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    WP_Post_Type::reset_default_labels();
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new from admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'menu_icon' => 'dashicons-admin-post',
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
        'show_in_rest' => true,
        'rest_base' => 'posts',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new from admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'menu_icon' => 'dashicons-admin-page',
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
        'show_in_rest' => true,
        'rest_base' => 'pages',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => __('Add New Media File'), 'edit_item' => __('Edit Media'), 'view_item' => ('1' === get_option('wp_attachment_pages_enabled')) ? __('View Attachment Page') : __('View Media File'), 'attributes' => __('Attachment Attributes')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'menu_icon' => 'dashicons-admin-media',
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
        'show_in_rest' => true,
        'rest_base' => 'media',
        'rest_controller_class' => 'WP_REST_Attachments_Controller',
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
        'map_meta_cap' => true,
        'capability_type' => array('edit_theme_options', 'edit_theme_options'),
        'capabilities' => array(
            // Meta Capabilities.
            'edit_post' => 'edit_post',
            'read_post' => 'read_post',
            'delete_post' => 'delete_post',
            // Primitive Capabilities.
            'edit_posts' => 'edit_theme_options',
            'edit_others_posts' => 'edit_theme_options',
            'delete_posts' => 'edit_theme_options',
            'publish_posts' => 'edit_theme_options',
            'read_private_posts' => 'edit_theme_options',
            'read' => 'read',
            'delete_private_posts' => 'edit_theme_options',
            'delete_published_posts' => 'edit_theme_options',
            'delete_others_posts' => 'edit_theme_options',
            'edit_private_posts' => 'edit_theme_options',
            'edit_published_posts' => 'edit_theme_options',
        ),
        'show_in_rest' => true,
        'rest_base' => 'menu-items',
        'rest_controller_class' => 'WP_REST_Menu_Items_Controller',
    ));
    register_post_type('custom_css', array(
        'labels' => array('name' => __('Custom CSS'), 'singular_name' => __('Custom CSS')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array('title', 'revisions'),
        'capabilities' => array('delete_posts' => 'edit_theme_options', 'delete_post' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_post' => 'edit_css', 'edit_posts' => 'edit_css', 'edit_others_posts' => 'edit_css', 'edit_published_posts' => 'edit_css', 'read_post' => 'read', 'read_private_posts' => 'read', 'publish_posts' => 'edit_theme_options'),
    ));
    register_post_type('customize_changeset', array(
        'labels' => array('name' => _x('Changesets', 'post type general name'), 'singular_name' => _x('Changeset', 'post type singular name'), 'add_new' => __('Add New Changeset'), 'add_new_item' => __('Add New Changeset'), 'new_item' => __('New Changeset'), 'edit_item' => __('Edit Changeset'), 'view_item' => __('View Changeset'), 'all_items' => __('All Changesets'), 'search_items' => __('Search Changesets'), 'not_found' => __('No changesets found.'), 'not_found_in_trash' => __('No changesets found in Trash.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array('title', 'author'),
        'capability_type' => 'customize_changeset',
        'capabilities' => array('create_posts' => 'customize', 'delete_others_posts' => 'customize', 'delete_post' => 'customize', 'delete_posts' => 'customize', 'delete_private_posts' => 'customize', 'delete_published_posts' => 'customize', 'edit_others_posts' => 'customize', 'edit_post' => 'customize', 'edit_posts' => 'customize', 'edit_private_posts' => 'customize', 'edit_published_posts' => 'do_not_allow', 'publish_posts' => 'customize', 'read' => 'read', 'read_post' => 'customize', 'read_private_posts' => 'customize'),
    ));
    register_post_type('oembed_cache', array(
        'labels' => array('name' => __('oEmbed Responses'), 'singular_name' => __('oEmbed Response')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array(),
    ));
    register_post_type('user_request', array(
        'labels' => array('name' => __('User Requests'), 'singular_name' => __('User Request')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array(),
    ));
    register_post_type('wp_block', array(
        'labels' => array('name' => _x('Patterns', 'post type general name'), 'singular_name' => _x('Pattern', 'post type singular name'), 'add_new' => __('Add New Pattern'), 'add_new_item' => __('Add New Pattern'), 'new_item' => __('New Pattern'), 'edit_item' => __('Edit Block Pattern'), 'view_item' => __('View Pattern'), 'view_items' => __('View Patterns'), 'all_items' => __('All Patterns'), 'search_items' => __('Search Patterns'), 'not_found' => __('No patterns found.'), 'not_found_in_trash' => __('No patterns found in Trash.'), 'filter_items_list' => __('Filter patterns list'), 'items_list_navigation' => __('Patterns list navigation'), 'items_list' => __('Patterns list'), 'item_published' => __('Pattern published.'), 'item_published_privately' => __('Pattern published privately.'), 'item_reverted_to_draft' => __('Pattern reverted to draft.'), 'item_scheduled' => __('Pattern scheduled.'), 'item_updated' => __('Pattern updated.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'show_ui' => true,
        'show_in_menu' => false,
        'rewrite' => false,
        'show_in_rest' => true,
        'rest_base' => 'blocks',
        'rest_controller_class' => 'WP_REST_Blocks_Controller',
        'capability_type' => 'block',
        'capabilities' => array(
            // You need to be able to edit posts, in order to read blocks in their raw form.
            'read' => 'edit_posts',
            // You need to be able to publish posts, in order to create blocks.
            'create_posts' => 'publish_posts',
            'edit_posts' => 'edit_posts',
            'edit_published_posts' => 'edit_published_posts',
            'delete_published_posts' => 'delete_published_posts',
            // Enables trashing draft posts as well.
            'delete_posts' => 'delete_posts',
            'edit_others_posts' => 'edit_others_posts',
            'delete_others_posts' => 'delete_others_posts',
        ),
        'map_meta_cap' => true,
        'supports' => array('title', 'editor', 'revisions', 'custom-fields'),
    ));
    $template_edit_link = 'site-editor.php?' . build_query(array('postType' => '%s', 'postId' => '%s', 'canvas' => 'edit'));
    register_post_type('wp_template', array(
        'labels' => array('name' => _x('Templates', 'post type general name'), 'singular_name' => _x('Template', 'post type singular name'), 'add_new' => __('Add New Template'), 'add_new_item' => __('Add New Template'), 'new_item' => __('New Template'), 'edit_item' => __('Edit Template'), 'view_item' => __('View Template'), 'all_items' => __('Templates'), 'search_items' => __('Search Templates'), 'parent_item_colon' => __('Parent Template:'), 'not_found' => __('No templates found.'), 'not_found_in_trash' => __('No templates found in Trash.'), 'archives' => __('Template archives'), 'insert_into_item' => __('Insert into template'), 'uploaded_to_this_item' => __('Uploaded to this template'), 'filter_items_list' => __('Filter templates list'), 'items_list_navigation' => __('Templates list navigation'), 'items_list' => __('Templates list')),
        'description' => __('Templates to include in your theme.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => $template_edit_link,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => false,
        'show_in_menu' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'rest_base' => 'templates',
        'rest_controller_class' => 'WP_REST_Templates_Controller',
        'autosave_rest_controller_class' => 'WP_REST_Template_Autosaves_Controller',
        'revisions_rest_controller_class' => 'WP_REST_Template_Revisions_Controller',
        'late_route_registration' => true,
        'capability_type' => array('template', 'templates'),
        'capabilities' => array('create_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'read' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options'),
        'map_meta_cap' => true,
        'supports' => array('title', 'slug', 'excerpt', 'editor', 'revisions', 'author'),
    ));
    register_post_type('wp_template_part', array(
        'labels' => array('name' => _x('Template Parts', 'post type general name'), 'singular_name' => _x('Template Part', 'post type singular name'), 'add_new' => __('Add New Template Part'), 'add_new_item' => __('Add New Template Part'), 'new_item' => __('New Template Part'), 'edit_item' => __('Edit Template Part'), 'view_item' => __('View Template Part'), 'all_items' => __('Template Parts'), 'search_items' => __('Search Template Parts'), 'parent_item_colon' => __('Parent Template Part:'), 'not_found' => __('No template parts found.'), 'not_found_in_trash' => __('No template parts found in Trash.'), 'archives' => __('Template part archives'), 'insert_into_item' => __('Insert into template part'), 'uploaded_to_this_item' => __('Uploaded to this template part'), 'filter_items_list' => __('Filter template parts list'), 'items_list_navigation' => __('Template parts list navigation'), 'items_list' => __('Template parts list')),
        'description' => __('Template parts to include in your templates.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => $template_edit_link,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => false,
        'show_in_menu' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'rest_base' => 'template-parts',
        'rest_controller_class' => 'WP_REST_Templates_Controller',
        'autosave_rest_controller_class' => 'WP_REST_Template_Autosaves_Controller',
        'revisions_rest_controller_class' => 'WP_REST_Template_Revisions_Controller',
        'late_route_registration' => true,
        'map_meta_cap' => true,
        'capabilities' => array('create_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'read' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options'),
        'supports' => array('title', 'slug', 'excerpt', 'editor', 'revisions', 'author'),
    ));
    register_post_type('wp_global_styles', array(
        'label' => _x('Global Styles', 'post type general name'),
        'description' => __('Global styles to include in themes.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => '/site-editor.php?canvas=edit',
        /* internal use only. don't use this when registering your own post type. */
        'show_ui' => false,
        'show_in_rest' => false,
        'rewrite' => false,
        'capabilities' => array('read' => 'edit_theme_options', 'create_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options'),
        'map_meta_cap' => true,
        'supports' => array('title', 'editor', 'revisions'),
    ));
    $navigation_post_edit_link = 'site-editor.php?' . build_query(array('postId' => '%s', 'postType' => 'wp_navigation', 'canvas' => 'edit'));
    register_post_type('wp_navigation', array(
        'labels' => array('name' => _x('Navigation Menus', 'post type general name'), 'singular_name' => _x('Navigation Menu', 'post type singular name'), 'add_new' => __('Add New Navigation Menu'), 'add_new_item' => __('Add New Navigation Menu'), 'new_item' => __('New Navigation Menu'), 'edit_item' => __('Edit Navigation Menu'), 'view_item' => __('View Navigation Menu'), 'all_items' => __('Navigation Menus'), 'search_items' => __('Search Navigation Menus'), 'parent_item_colon' => __('Parent Navigation Menu:'), 'not_found' => __('No Navigation Menu found.'), 'not_found_in_trash' => __('No Navigation Menu found in Trash.'), 'archives' => __('Navigation Menu archives'), 'insert_into_item' => __('Insert into Navigation Menu'), 'uploaded_to_this_item' => __('Uploaded to this Navigation Menu'), 'filter_items_list' => __('Filter Navigation Menu list'), 'items_list_navigation' => __('Navigation Menus list navigation'), 'items_list' => __('Navigation Menus list')),
        'description' => __('Navigation menus that can be inserted into your site.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => $navigation_post_edit_link,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => true,
        'show_in_menu' => false,
        'show_in_admin_bar' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'map_meta_cap' => true,
        'capabilities' => array('edit_others_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'create_posts' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options'),
        'rest_base' => 'navigation',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
        'supports' => array('title', 'editor', 'revisions'),
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of published posts. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of scheduled posts. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of draft posts. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending posts. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of private posts. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of trashed posts. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array(
        'label' => 'auto-draft',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'date_floating' => true,
    ));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-pending', array(
        'label' => _x('Pending', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending requests. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-confirmed', array(
        'label' => _x('Confirmed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of confirmed requests. */
        'label_count' => _n_noop('Confirmed <span class="count">(%s)</span>', 'Confirmed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-failed', array(
        'label' => _x('Failed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of failed requests. */
        'label_count' => _n_noop('Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-completed', array(
        'label' => _x('Completed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of completed requests. */
        'label_count' => _n_noop('Completed <span class="count">(%s)</span>', 'Completed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
}

WordPress Version: 3.2

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type registration.
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * See {@see 'init'}.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    WP_Post_Type::reset_default_labels();
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new from admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'menu_icon' => 'dashicons-admin-post',
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
        'show_in_rest' => true,
        'rest_base' => 'posts',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new from admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'menu_icon' => 'dashicons-admin-page',
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
        'show_in_rest' => true,
        'rest_base' => 'pages',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'file'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page'), 'attributes' => __('Attachment Attributes')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'menu_icon' => 'dashicons-admin-media',
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
        'show_in_rest' => true,
        'rest_base' => 'media',
        'rest_controller_class' => 'WP_REST_Attachments_Controller',
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
        'map_meta_cap' => true,
        'capability_type' => array('edit_theme_options', 'edit_theme_options'),
        'capabilities' => array(
            // Meta Capabilities.
            'edit_post' => 'edit_post',
            'read_post' => 'read_post',
            'delete_post' => 'delete_post',
            // Primitive Capabilities.
            'edit_posts' => 'edit_theme_options',
            'edit_others_posts' => 'edit_theme_options',
            'delete_posts' => 'edit_theme_options',
            'publish_posts' => 'edit_theme_options',
            'read_private_posts' => 'edit_theme_options',
            'read' => 'read',
            'delete_private_posts' => 'edit_theme_options',
            'delete_published_posts' => 'edit_theme_options',
            'delete_others_posts' => 'edit_theme_options',
            'edit_private_posts' => 'edit_theme_options',
            'edit_published_posts' => 'edit_theme_options',
        ),
        'show_in_rest' => true,
        'rest_base' => 'menu-items',
        'rest_controller_class' => 'WP_REST_Menu_Items_Controller',
    ));
    register_post_type('custom_css', array(
        'labels' => array('name' => __('Custom CSS'), 'singular_name' => __('Custom CSS')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array('title', 'revisions'),
        'capabilities' => array('delete_posts' => 'edit_theme_options', 'delete_post' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_post' => 'edit_css', 'edit_posts' => 'edit_css', 'edit_others_posts' => 'edit_css', 'edit_published_posts' => 'edit_css', 'read_post' => 'read', 'read_private_posts' => 'read', 'publish_posts' => 'edit_theme_options'),
    ));
    register_post_type('customize_changeset', array(
        'labels' => array('name' => _x('Changesets', 'post type general name'), 'singular_name' => _x('Changeset', 'post type singular name'), 'add_new' => _x('Add New', 'Customize Changeset'), 'add_new_item' => __('Add New Changeset'), 'new_item' => __('New Changeset'), 'edit_item' => __('Edit Changeset'), 'view_item' => __('View Changeset'), 'all_items' => __('All Changesets'), 'search_items' => __('Search Changesets'), 'not_found' => __('No changesets found.'), 'not_found_in_trash' => __('No changesets found in Trash.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array('title', 'author'),
        'capability_type' => 'customize_changeset',
        'capabilities' => array('create_posts' => 'customize', 'delete_others_posts' => 'customize', 'delete_post' => 'customize', 'delete_posts' => 'customize', 'delete_private_posts' => 'customize', 'delete_published_posts' => 'customize', 'edit_others_posts' => 'customize', 'edit_post' => 'customize', 'edit_posts' => 'customize', 'edit_private_posts' => 'customize', 'edit_published_posts' => 'do_not_allow', 'publish_posts' => 'customize', 'read' => 'read', 'read_post' => 'customize', 'read_private_posts' => 'customize'),
    ));
    register_post_type('oembed_cache', array(
        'labels' => array('name' => __('oEmbed Responses'), 'singular_name' => __('oEmbed Response')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array(),
    ));
    register_post_type('user_request', array(
        'labels' => array('name' => __('User Requests'), 'singular_name' => __('User Request')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array(),
    ));
    register_post_type('wp_block', array(
        'labels' => array('name' => _x('Patterns', 'post type general name'), 'singular_name' => _x('Pattern', 'post type singular name'), 'add_new' => _x('Add New', 'Pattern'), 'add_new_item' => __('Add new Pattern'), 'new_item' => __('New Pattern'), 'edit_item' => __('Edit Block Pattern'), 'view_item' => __('View Pattern'), 'view_items' => __('View Patterns'), 'all_items' => __('All Patterns'), 'search_items' => __('Search Patterns'), 'not_found' => __('No patterns found.'), 'not_found_in_trash' => __('No patterns found in Trash.'), 'filter_items_list' => __('Filter patterns list'), 'items_list_navigation' => __('Patterns list navigation'), 'items_list' => __('Patterns list'), 'item_published' => __('Pattern published.'), 'item_published_privately' => __('Pattern published privately.'), 'item_reverted_to_draft' => __('Pattern reverted to draft.'), 'item_scheduled' => __('Pattern scheduled.'), 'item_updated' => __('Pattern updated.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'show_ui' => true,
        'show_in_menu' => false,
        'rewrite' => false,
        'show_in_rest' => true,
        'rest_base' => 'blocks',
        'rest_controller_class' => 'WP_REST_Blocks_Controller',
        'capability_type' => 'block',
        'capabilities' => array(
            // You need to be able to edit posts, in order to read blocks in their raw form.
            'read' => 'edit_posts',
            // You need to be able to publish posts, in order to create blocks.
            'create_posts' => 'publish_posts',
            'edit_posts' => 'edit_posts',
            'edit_published_posts' => 'edit_published_posts',
            'delete_published_posts' => 'delete_published_posts',
            // Enables trashing draft posts as well.
            'delete_posts' => 'delete_posts',
            'edit_others_posts' => 'edit_others_posts',
            'delete_others_posts' => 'delete_others_posts',
        ),
        'map_meta_cap' => true,
        'supports' => array('title', 'editor', 'revisions', 'custom-fields'),
    ));
    $template_edit_link = 'site-editor.php?' . build_query(array('postType' => '%s', 'postId' => '%s', 'canvas' => 'edit'));
    register_post_type('wp_template', array(
        'labels' => array('name' => _x('Templates', 'post type general name'), 'singular_name' => _x('Template', 'post type singular name'), 'add_new' => _x('Add New', 'Template'), 'add_new_item' => __('Add New Template'), 'new_item' => __('New Template'), 'edit_item' => __('Edit Template'), 'view_item' => __('View Template'), 'all_items' => __('Templates'), 'search_items' => __('Search Templates'), 'parent_item_colon' => __('Parent Template:'), 'not_found' => __('No templates found.'), 'not_found_in_trash' => __('No templates found in Trash.'), 'archives' => __('Template archives'), 'insert_into_item' => __('Insert into template'), 'uploaded_to_this_item' => __('Uploaded to this template'), 'filter_items_list' => __('Filter templates list'), 'items_list_navigation' => __('Templates list navigation'), 'items_list' => __('Templates list')),
        'description' => __('Templates to include in your theme.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => $template_edit_link,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => false,
        'show_in_menu' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'rest_base' => 'templates',
        'rest_controller_class' => 'WP_REST_Templates_Controller',
        'capability_type' => array('template', 'templates'),
        'capabilities' => array('create_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'read' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options'),
        'map_meta_cap' => true,
        'supports' => array('title', 'slug', 'excerpt', 'editor', 'revisions', 'author'),
    ));
    register_post_type('wp_template_part', array(
        'labels' => array('name' => _x('Template Parts', 'post type general name'), 'singular_name' => _x('Template Part', 'post type singular name'), 'add_new' => _x('Add New', 'Template Part'), 'add_new_item' => __('Add New Template Part'), 'new_item' => __('New Template Part'), 'edit_item' => __('Edit Template Part'), 'view_item' => __('View Template Part'), 'all_items' => __('Template Parts'), 'search_items' => __('Search Template Parts'), 'parent_item_colon' => __('Parent Template Part:'), 'not_found' => __('No template parts found.'), 'not_found_in_trash' => __('No template parts found in Trash.'), 'archives' => __('Template part archives'), 'insert_into_item' => __('Insert into template part'), 'uploaded_to_this_item' => __('Uploaded to this template part'), 'filter_items_list' => __('Filter template parts list'), 'items_list_navigation' => __('Template parts list navigation'), 'items_list' => __('Template parts list')),
        'description' => __('Template parts to include in your templates.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => $template_edit_link,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => false,
        'show_in_menu' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'rest_base' => 'template-parts',
        'rest_controller_class' => 'WP_REST_Templates_Controller',
        'map_meta_cap' => true,
        'capabilities' => array('create_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'read' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options'),
        'supports' => array('title', 'slug', 'excerpt', 'editor', 'revisions', 'author'),
    ));
    register_post_type('wp_global_styles', array(
        'label' => _x('Global Styles', 'post type general name'),
        'description' => __('Global styles to include in themes.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => '/site-editor.php?canvas=edit',
        /* internal use only. don't use this when registering your own post type. */
        'show_ui' => false,
        'show_in_rest' => false,
        'rewrite' => false,
        'capabilities' => array('read' => 'edit_theme_options', 'create_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options'),
        'map_meta_cap' => true,
        'supports' => array('title', 'editor', 'revisions'),
    ));
    $navigation_post_edit_link = 'site-editor.php?' . build_query(array('postId' => '%s', 'postType' => 'wp_navigation', 'canvas' => 'edit'));
    register_post_type('wp_navigation', array(
        'labels' => array('name' => _x('Navigation Menus', 'post type general name'), 'singular_name' => _x('Navigation Menu', 'post type singular name'), 'add_new' => _x('Add New', 'Navigation Menu'), 'add_new_item' => __('Add New Navigation Menu'), 'new_item' => __('New Navigation Menu'), 'edit_item' => __('Edit Navigation Menu'), 'view_item' => __('View Navigation Menu'), 'all_items' => __('Navigation Menus'), 'search_items' => __('Search Navigation Menus'), 'parent_item_colon' => __('Parent Navigation Menu:'), 'not_found' => __('No Navigation Menu found.'), 'not_found_in_trash' => __('No Navigation Menu found in Trash.'), 'archives' => __('Navigation Menu archives'), 'insert_into_item' => __('Insert into Navigation Menu'), 'uploaded_to_this_item' => __('Uploaded to this Navigation Menu'), 'filter_items_list' => __('Filter Navigation Menu list'), 'items_list_navigation' => __('Navigation Menus list navigation'), 'items_list' => __('Navigation Menus list')),
        'description' => __('Navigation menus that can be inserted into your site.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => $navigation_post_edit_link,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => true,
        'show_in_menu' => false,
        'show_in_admin_bar' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'map_meta_cap' => true,
        'capabilities' => array('edit_others_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'create_posts' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options'),
        'rest_base' => 'navigation',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
        'supports' => array('title', 'editor', 'revisions'),
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of published posts. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of scheduled posts. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of draft posts. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending posts. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of private posts. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of trashed posts. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array(
        'label' => 'auto-draft',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'date_floating' => true,
    ));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-pending', array(
        'label' => _x('Pending', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending requests. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-confirmed', array(
        'label' => _x('Confirmed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of confirmed requests. */
        'label_count' => _n_noop('Confirmed <span class="count">(%s)</span>', 'Confirmed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-failed', array(
        'label' => _x('Failed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of failed requests. */
        'label_count' => _n_noop('Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-completed', array(
        'label' => _x('Completed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of completed requests. */
        'label_count' => _n_noop('Completed <span class="count">(%s)</span>', 'Completed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
}

WordPress Version: 6.3

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type registration.
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * See {@see 'init'}.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    WP_Post_Type::reset_default_labels();
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new from admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'menu_icon' => 'dashicons-admin-post',
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
        'show_in_rest' => true,
        'rest_base' => 'posts',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new from admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'menu_icon' => 'dashicons-admin-page',
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
        'show_in_rest' => true,
        'rest_base' => 'pages',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'file'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page'), 'attributes' => __('Attachment Attributes')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'menu_icon' => 'dashicons-admin-media',
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
        'show_in_rest' => true,
        'rest_base' => 'media',
        'rest_controller_class' => 'WP_REST_Attachments_Controller',
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
        'map_meta_cap' => true,
        'capability_type' => array('edit_theme_options', 'edit_theme_options'),
        'capabilities' => array(
            // Meta Capabilities.
            'edit_post' => 'edit_post',
            'read_post' => 'read_post',
            'delete_post' => 'delete_post',
            // Primitive Capabilities.
            'edit_posts' => 'edit_theme_options',
            'edit_others_posts' => 'edit_theme_options',
            'delete_posts' => 'edit_theme_options',
            'publish_posts' => 'edit_theme_options',
            'read_private_posts' => 'edit_theme_options',
            'read' => 'read',
            'delete_private_posts' => 'edit_theme_options',
            'delete_published_posts' => 'edit_theme_options',
            'delete_others_posts' => 'edit_theme_options',
            'edit_private_posts' => 'edit_theme_options',
            'edit_published_posts' => 'edit_theme_options',
        ),
        'show_in_rest' => true,
        'rest_base' => 'menu-items',
        'rest_controller_class' => 'WP_REST_Menu_Items_Controller',
    ));
    register_post_type('custom_css', array(
        'labels' => array('name' => __('Custom CSS'), 'singular_name' => __('Custom CSS')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array('title', 'revisions'),
        'capabilities' => array('delete_posts' => 'edit_theme_options', 'delete_post' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_post' => 'edit_css', 'edit_posts' => 'edit_css', 'edit_others_posts' => 'edit_css', 'edit_published_posts' => 'edit_css', 'read_post' => 'read', 'read_private_posts' => 'read', 'publish_posts' => 'edit_theme_options'),
    ));
    register_post_type('customize_changeset', array(
        'labels' => array('name' => _x('Changesets', 'post type general name'), 'singular_name' => _x('Changeset', 'post type singular name'), 'add_new' => _x('Add New', 'Customize Changeset'), 'add_new_item' => __('Add New Changeset'), 'new_item' => __('New Changeset'), 'edit_item' => __('Edit Changeset'), 'view_item' => __('View Changeset'), 'all_items' => __('All Changesets'), 'search_items' => __('Search Changesets'), 'not_found' => __('No changesets found.'), 'not_found_in_trash' => __('No changesets found in Trash.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array('title', 'author'),
        'capability_type' => 'customize_changeset',
        'capabilities' => array('create_posts' => 'customize', 'delete_others_posts' => 'customize', 'delete_post' => 'customize', 'delete_posts' => 'customize', 'delete_private_posts' => 'customize', 'delete_published_posts' => 'customize', 'edit_others_posts' => 'customize', 'edit_post' => 'customize', 'edit_posts' => 'customize', 'edit_private_posts' => 'customize', 'edit_published_posts' => 'do_not_allow', 'publish_posts' => 'customize', 'read' => 'read', 'read_post' => 'customize', 'read_private_posts' => 'customize'),
    ));
    register_post_type('oembed_cache', array(
        'labels' => array('name' => __('oEmbed Responses'), 'singular_name' => __('oEmbed Response')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array(),
    ));
    register_post_type('user_request', array(
        'labels' => array('name' => __('User Requests'), 'singular_name' => __('User Request')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array(),
    ));
    register_post_type('wp_block', array(
        'labels' => array('name' => _x('Patterns', 'post type general name'), 'singular_name' => _x('Pattern', 'post type singular name'), 'add_new' => _x('Add New', 'Pattern'), 'add_new_item' => __('Add new Pattern'), 'new_item' => __('New Pattern'), 'edit_item' => __('Edit Block Pattern'), 'view_item' => __('View Pattern'), 'view_items' => __('View Patterns'), 'all_items' => __('All Patterns'), 'search_items' => __('Search Patterns'), 'not_found' => __('No patterns found.'), 'not_found_in_trash' => __('No patterns found in Trash.'), 'filter_items_list' => __('Filter patterns list'), 'items_list_navigation' => __('Patterns list navigation'), 'items_list' => __('Patterns list'), 'item_published' => __('Pattern published.'), 'item_published_privately' => __('Pattern published privately.'), 'item_reverted_to_draft' => __('Pattern reverted to draft.'), 'item_scheduled' => __('Pattern scheduled.'), 'item_updated' => __('Pattern updated.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'show_ui' => true,
        'show_in_menu' => false,
        'rewrite' => false,
        'show_in_rest' => true,
        'rest_base' => 'blocks',
        'rest_controller_class' => 'WP_REST_Blocks_Controller',
        'capability_type' => 'block',
        'capabilities' => array(
            // You need to be able to edit posts, in order to read blocks in their raw form.
            'read' => 'edit_posts',
            // You need to be able to publish posts, in order to create blocks.
            'create_posts' => 'publish_posts',
            'edit_posts' => 'edit_posts',
            'edit_published_posts' => 'edit_published_posts',
            'delete_published_posts' => 'delete_published_posts',
            'edit_others_posts' => 'edit_others_posts',
            'delete_others_posts' => 'delete_others_posts',
        ),
        'map_meta_cap' => true,
        'supports' => array('title', 'editor', 'revisions', 'custom-fields'),
    ));
    $template_edit_link = 'site-editor.php?' . build_query(array('postType' => '%s', 'postId' => '%s', 'canvas' => 'edit'));
    register_post_type('wp_template', array(
        'labels' => array('name' => _x('Templates', 'post type general name'), 'singular_name' => _x('Template', 'post type singular name'), 'add_new' => _x('Add New', 'Template'), 'add_new_item' => __('Add New Template'), 'new_item' => __('New Template'), 'edit_item' => __('Edit Template'), 'view_item' => __('View Template'), 'all_items' => __('Templates'), 'search_items' => __('Search Templates'), 'parent_item_colon' => __('Parent Template:'), 'not_found' => __('No templates found.'), 'not_found_in_trash' => __('No templates found in Trash.'), 'archives' => __('Template archives'), 'insert_into_item' => __('Insert into template'), 'uploaded_to_this_item' => __('Uploaded to this template'), 'filter_items_list' => __('Filter templates list'), 'items_list_navigation' => __('Templates list navigation'), 'items_list' => __('Templates list')),
        'description' => __('Templates to include in your theme.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => $template_edit_link,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => false,
        'show_in_menu' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'rest_base' => 'templates',
        'rest_controller_class' => 'WP_REST_Templates_Controller',
        'capability_type' => array('template', 'templates'),
        'capabilities' => array('create_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'read' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options'),
        'map_meta_cap' => true,
        'supports' => array('title', 'slug', 'excerpt', 'editor', 'revisions', 'author'),
    ));
    register_post_type('wp_template_part', array(
        'labels' => array('name' => _x('Template Parts', 'post type general name'), 'singular_name' => _x('Template Part', 'post type singular name'), 'add_new' => _x('Add New', 'Template Part'), 'add_new_item' => __('Add New Template Part'), 'new_item' => __('New Template Part'), 'edit_item' => __('Edit Template Part'), 'view_item' => __('View Template Part'), 'all_items' => __('Template Parts'), 'search_items' => __('Search Template Parts'), 'parent_item_colon' => __('Parent Template Part:'), 'not_found' => __('No template parts found.'), 'not_found_in_trash' => __('No template parts found in Trash.'), 'archives' => __('Template part archives'), 'insert_into_item' => __('Insert into template part'), 'uploaded_to_this_item' => __('Uploaded to this template part'), 'filter_items_list' => __('Filter template parts list'), 'items_list_navigation' => __('Template parts list navigation'), 'items_list' => __('Template parts list')),
        'description' => __('Template parts to include in your templates.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => $template_edit_link,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => false,
        'show_in_menu' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'rest_base' => 'template-parts',
        'rest_controller_class' => 'WP_REST_Templates_Controller',
        'map_meta_cap' => true,
        'capabilities' => array('create_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'read' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options'),
        'supports' => array('title', 'slug', 'excerpt', 'editor', 'revisions', 'author'),
    ));
    register_post_type('wp_global_styles', array(
        'label' => _x('Global Styles', 'post type general name'),
        'description' => __('Global styles to include in themes.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => '/site-editor.php?canvas=edit',
        /* internal use only. don't use this when registering your own post type. */
        'show_ui' => false,
        'show_in_rest' => false,
        'rewrite' => false,
        'capabilities' => array('read' => 'edit_theme_options', 'create_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options'),
        'map_meta_cap' => true,
        'supports' => array('title', 'editor', 'revisions'),
    ));
    $navigation_post_edit_link = 'site-editor.php?' . build_query(array('postId' => '%s', 'postType' => 'wp_navigation', 'canvas' => 'edit'));
    register_post_type('wp_navigation', array(
        'labels' => array('name' => _x('Navigation Menus', 'post type general name'), 'singular_name' => _x('Navigation Menu', 'post type singular name'), 'add_new' => _x('Add New', 'Navigation Menu'), 'add_new_item' => __('Add New Navigation Menu'), 'new_item' => __('New Navigation Menu'), 'edit_item' => __('Edit Navigation Menu'), 'view_item' => __('View Navigation Menu'), 'all_items' => __('Navigation Menus'), 'search_items' => __('Search Navigation Menus'), 'parent_item_colon' => __('Parent Navigation Menu:'), 'not_found' => __('No Navigation Menu found.'), 'not_found_in_trash' => __('No Navigation Menu found in Trash.'), 'archives' => __('Navigation Menu archives'), 'insert_into_item' => __('Insert into Navigation Menu'), 'uploaded_to_this_item' => __('Uploaded to this Navigation Menu'), 'filter_items_list' => __('Filter Navigation Menu list'), 'items_list_navigation' => __('Navigation Menus list navigation'), 'items_list' => __('Navigation Menus list')),
        'description' => __('Navigation menus that can be inserted into your site.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => $navigation_post_edit_link,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => true,
        'show_in_menu' => false,
        'show_in_admin_bar' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'map_meta_cap' => true,
        'capabilities' => array('edit_others_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'create_posts' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options'),
        'rest_base' => 'navigation',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
        'supports' => array('title', 'editor', 'revisions'),
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of published posts. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of scheduled posts. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of draft posts. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending posts. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of private posts. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of trashed posts. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array(
        'label' => 'auto-draft',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'date_floating' => true,
    ));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-pending', array(
        'label' => _x('Pending', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending requests. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-confirmed', array(
        'label' => _x('Confirmed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of confirmed requests. */
        'label_count' => _n_noop('Confirmed <span class="count">(%s)</span>', 'Confirmed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-failed', array(
        'label' => _x('Failed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of failed requests. */
        'label_count' => _n_noop('Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-completed', array(
        'label' => _x('Completed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of completed requests. */
        'label_count' => _n_noop('Completed <span class="count">(%s)</span>', 'Completed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
}

WordPress Version: 6.1

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type registration.
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * See {@see 'init'}.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    WP_Post_Type::reset_default_labels();
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new from admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'menu_icon' => 'dashicons-admin-post',
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
        'show_in_rest' => true,
        'rest_base' => 'posts',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new from admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'menu_icon' => 'dashicons-admin-page',
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
        'show_in_rest' => true,
        'rest_base' => 'pages',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'file'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page'), 'attributes' => __('Attachment Attributes')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'menu_icon' => 'dashicons-admin-media',
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
        'show_in_rest' => true,
        'rest_base' => 'media',
        'rest_controller_class' => 'WP_REST_Attachments_Controller',
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
        'map_meta_cap' => true,
        'capability_type' => array('edit_theme_options', 'edit_theme_options'),
        'capabilities' => array(
            // Meta Capabilities.
            'edit_post' => 'edit_post',
            'read_post' => 'read_post',
            'delete_post' => 'delete_post',
            // Primitive Capabilities.
            'edit_posts' => 'edit_theme_options',
            'edit_others_posts' => 'edit_theme_options',
            'delete_posts' => 'edit_theme_options',
            'publish_posts' => 'edit_theme_options',
            'read_private_posts' => 'edit_theme_options',
            'read' => 'read',
            'delete_private_posts' => 'edit_theme_options',
            'delete_published_posts' => 'edit_theme_options',
            'delete_others_posts' => 'edit_theme_options',
            'edit_private_posts' => 'edit_theme_options',
            'edit_published_posts' => 'edit_theme_options',
        ),
        'show_in_rest' => true,
        'rest_base' => 'menu-items',
        'rest_controller_class' => 'WP_REST_Menu_Items_Controller',
    ));
    register_post_type('custom_css', array(
        'labels' => array('name' => __('Custom CSS'), 'singular_name' => __('Custom CSS')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array('title', 'revisions'),
        'capabilities' => array('delete_posts' => 'edit_theme_options', 'delete_post' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_post' => 'edit_css', 'edit_posts' => 'edit_css', 'edit_others_posts' => 'edit_css', 'edit_published_posts' => 'edit_css', 'read_post' => 'read', 'read_private_posts' => 'read', 'publish_posts' => 'edit_theme_options'),
    ));
    register_post_type('customize_changeset', array(
        'labels' => array('name' => _x('Changesets', 'post type general name'), 'singular_name' => _x('Changeset', 'post type singular name'), 'add_new' => _x('Add New', 'Customize Changeset'), 'add_new_item' => __('Add New Changeset'), 'new_item' => __('New Changeset'), 'edit_item' => __('Edit Changeset'), 'view_item' => __('View Changeset'), 'all_items' => __('All Changesets'), 'search_items' => __('Search Changesets'), 'not_found' => __('No changesets found.'), 'not_found_in_trash' => __('No changesets found in Trash.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array('title', 'author'),
        'capability_type' => 'customize_changeset',
        'capabilities' => array('create_posts' => 'customize', 'delete_others_posts' => 'customize', 'delete_post' => 'customize', 'delete_posts' => 'customize', 'delete_private_posts' => 'customize', 'delete_published_posts' => 'customize', 'edit_others_posts' => 'customize', 'edit_post' => 'customize', 'edit_posts' => 'customize', 'edit_private_posts' => 'customize', 'edit_published_posts' => 'do_not_allow', 'publish_posts' => 'customize', 'read' => 'read', 'read_post' => 'customize', 'read_private_posts' => 'customize'),
    ));
    register_post_type('oembed_cache', array(
        'labels' => array('name' => __('oEmbed Responses'), 'singular_name' => __('oEmbed Response')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array(),
    ));
    register_post_type('user_request', array(
        'labels' => array('name' => __('User Requests'), 'singular_name' => __('User Request')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array(),
    ));
    register_post_type('wp_block', array(
        'labels' => array('name' => _x('Reusable blocks', 'post type general name'), 'singular_name' => _x('Reusable block', 'post type singular name'), 'add_new' => _x('Add New', 'Reusable block'), 'add_new_item' => __('Add new Reusable block'), 'new_item' => __('New Reusable block'), 'edit_item' => __('Edit Reusable block'), 'view_item' => __('View Reusable block'), 'all_items' => __('All Reusable blocks'), 'search_items' => __('Search Reusable blocks'), 'not_found' => __('No reusable blocks found.'), 'not_found_in_trash' => __('No reusable blocks found in Trash.'), 'filter_items_list' => __('Filter reusable blocks list'), 'items_list_navigation' => __('Reusable blocks list navigation'), 'items_list' => __('Reusable blocks list'), 'item_published' => __('Reusable block published.'), 'item_published_privately' => __('Reusable block published privately.'), 'item_reverted_to_draft' => __('Reusable block reverted to draft.'), 'item_scheduled' => __('Reusable block scheduled.'), 'item_updated' => __('Reusable block updated.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'show_ui' => true,
        'show_in_menu' => false,
        'rewrite' => false,
        'show_in_rest' => true,
        'rest_base' => 'blocks',
        'rest_controller_class' => 'WP_REST_Blocks_Controller',
        'capability_type' => 'block',
        'capabilities' => array(
            // You need to be able to edit posts, in order to read blocks in their raw form.
            'read' => 'edit_posts',
            // You need to be able to publish posts, in order to create blocks.
            'create_posts' => 'publish_posts',
            'edit_posts' => 'edit_posts',
            'edit_published_posts' => 'edit_published_posts',
            'delete_published_posts' => 'delete_published_posts',
            'edit_others_posts' => 'edit_others_posts',
            'delete_others_posts' => 'delete_others_posts',
        ),
        'map_meta_cap' => true,
        'supports' => array('title', 'editor', 'revisions'),
    ));
    register_post_type('wp_template', array(
        'labels' => array('name' => _x('Templates', 'post type general name'), 'singular_name' => _x('Template', 'post type singular name'), 'add_new' => _x('Add New', 'Template'), 'add_new_item' => __('Add New Template'), 'new_item' => __('New Template'), 'edit_item' => __('Edit Template'), 'view_item' => __('View Template'), 'all_items' => __('Templates'), 'search_items' => __('Search Templates'), 'parent_item_colon' => __('Parent Template:'), 'not_found' => __('No templates found.'), 'not_found_in_trash' => __('No templates found in Trash.'), 'archives' => __('Template archives'), 'insert_into_item' => __('Insert into template'), 'uploaded_to_this_item' => __('Uploaded to this template'), 'filter_items_list' => __('Filter templates list'), 'items_list_navigation' => __('Templates list navigation'), 'items_list' => __('Templates list')),
        'description' => __('Templates to include in your theme.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => false,
        'show_in_menu' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'rest_base' => 'templates',
        'rest_controller_class' => 'WP_REST_Templates_Controller',
        'capability_type' => array('template', 'templates'),
        'capabilities' => array('create_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'read' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options'),
        'map_meta_cap' => true,
        'supports' => array('title', 'slug', 'excerpt', 'editor', 'revisions', 'author'),
    ));
    register_post_type('wp_template_part', array(
        'labels' => array('name' => _x('Template Parts', 'post type general name'), 'singular_name' => _x('Template Part', 'post type singular name'), 'add_new' => _x('Add New', 'Template Part'), 'add_new_item' => __('Add New Template Part'), 'new_item' => __('New Template Part'), 'edit_item' => __('Edit Template Part'), 'view_item' => __('View Template Part'), 'all_items' => __('Template Parts'), 'search_items' => __('Search Template Parts'), 'parent_item_colon' => __('Parent Template Part:'), 'not_found' => __('No template parts found.'), 'not_found_in_trash' => __('No template parts found in Trash.'), 'archives' => __('Template part archives'), 'insert_into_item' => __('Insert into template part'), 'uploaded_to_this_item' => __('Uploaded to this template part'), 'filter_items_list' => __('Filter template parts list'), 'items_list_navigation' => __('Template parts list navigation'), 'items_list' => __('Template parts list')),
        'description' => __('Template parts to include in your templates.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => false,
        'show_in_menu' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'rest_base' => 'template-parts',
        'rest_controller_class' => 'WP_REST_Templates_Controller',
        'map_meta_cap' => true,
        'capabilities' => array('create_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'read' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options'),
        'supports' => array('title', 'slug', 'excerpt', 'editor', 'revisions', 'author'),
    ));
    register_post_type('wp_global_styles', array(
        'label' => _x('Global Styles', 'post type general name'),
        'description' => __('Global styles to include in themes.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'show_ui' => false,
        'show_in_rest' => false,
        'rewrite' => false,
        'capabilities' => array('read' => 'edit_theme_options', 'create_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options'),
        'map_meta_cap' => true,
        'supports' => array('title', 'editor', 'revisions'),
    ));
    register_post_type('wp_navigation', array(
        'labels' => array('name' => _x('Navigation Menus', 'post type general name'), 'singular_name' => _x('Navigation Menu', 'post type singular name'), 'add_new' => _x('Add New', 'Navigation Menu'), 'add_new_item' => __('Add New Navigation Menu'), 'new_item' => __('New Navigation Menu'), 'edit_item' => __('Edit Navigation Menu'), 'view_item' => __('View Navigation Menu'), 'all_items' => __('Navigation Menus'), 'search_items' => __('Search Navigation Menus'), 'parent_item_colon' => __('Parent Navigation Menu:'), 'not_found' => __('No Navigation Menu found.'), 'not_found_in_trash' => __('No Navigation Menu found in Trash.'), 'archives' => __('Navigation Menu archives'), 'insert_into_item' => __('Insert into Navigation Menu'), 'uploaded_to_this_item' => __('Uploaded to this Navigation Menu'), 'filter_items_list' => __('Filter Navigation Menu list'), 'items_list_navigation' => __('Navigation Menus list navigation'), 'items_list' => __('Navigation Menus list')),
        'description' => __('Navigation menus that can be inserted into your site.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => true,
        'show_in_menu' => false,
        'show_in_admin_bar' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'map_meta_cap' => true,
        'capabilities' => array('edit_others_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'create_posts' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options'),
        'rest_base' => 'navigation',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
        'supports' => array('title', 'editor', 'revisions'),
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of published posts. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of scheduled posts. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of draft posts. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending posts. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of private posts. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of trashed posts. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array(
        'label' => 'auto-draft',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'date_floating' => true,
    ));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-pending', array(
        'label' => _x('Pending', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending requests. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-confirmed', array(
        'label' => _x('Confirmed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of confirmed requests. */
        'label_count' => _n_noop('Confirmed <span class="count">(%s)</span>', 'Confirmed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-failed', array(
        'label' => _x('Failed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of failed requests. */
        'label_count' => _n_noop('Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-completed', array(
        'label' => _x('Completed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of completed requests. */
        'label_count' => _n_noop('Completed <span class="count">(%s)</span>', 'Completed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
}

WordPress Version: 9.1

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type registration.
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * See {@see 'init'}.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new from admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'menu_icon' => 'dashicons-admin-post',
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
        'show_in_rest' => true,
        'rest_base' => 'posts',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new from admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'menu_icon' => 'dashicons-admin-page',
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
        'show_in_rest' => true,
        'rest_base' => 'pages',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'add new media'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page'), 'attributes' => __('Attachment Attributes')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'menu_icon' => 'dashicons-admin-media',
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
        'show_in_rest' => true,
        'rest_base' => 'media',
        'rest_controller_class' => 'WP_REST_Attachments_Controller',
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
        'map_meta_cap' => true,
        'capability_type' => array('edit_theme_options', 'edit_theme_options'),
        'capabilities' => array(
            // Meta Capabilities.
            'edit_post' => 'edit_post',
            'read_post' => 'read_post',
            'delete_post' => 'delete_post',
            // Primitive Capabilities.
            'edit_posts' => 'edit_theme_options',
            'edit_others_posts' => 'edit_theme_options',
            'delete_posts' => 'edit_theme_options',
            'publish_posts' => 'edit_theme_options',
            'read_private_posts' => 'edit_theme_options',
            'read' => 'read',
            'delete_private_posts' => 'edit_theme_options',
            'delete_published_posts' => 'edit_theme_options',
            'delete_others_posts' => 'edit_theme_options',
            'edit_private_posts' => 'edit_theme_options',
            'edit_published_posts' => 'edit_theme_options',
        ),
        'show_in_rest' => true,
        'rest_base' => 'menu-items',
        'rest_controller_class' => 'WP_REST_Menu_Items_Controller',
    ));
    register_post_type('custom_css', array(
        'labels' => array('name' => __('Custom CSS'), 'singular_name' => __('Custom CSS')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array('title', 'revisions'),
        'capabilities' => array('delete_posts' => 'edit_theme_options', 'delete_post' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_post' => 'edit_css', 'edit_posts' => 'edit_css', 'edit_others_posts' => 'edit_css', 'edit_published_posts' => 'edit_css', 'read_post' => 'read', 'read_private_posts' => 'read', 'publish_posts' => 'edit_theme_options'),
    ));
    register_post_type('customize_changeset', array(
        'labels' => array('name' => _x('Changesets', 'post type general name'), 'singular_name' => _x('Changeset', 'post type singular name'), 'add_new' => _x('Add New', 'Customize Changeset'), 'add_new_item' => __('Add New Changeset'), 'new_item' => __('New Changeset'), 'edit_item' => __('Edit Changeset'), 'view_item' => __('View Changeset'), 'all_items' => __('All Changesets'), 'search_items' => __('Search Changesets'), 'not_found' => __('No changesets found.'), 'not_found_in_trash' => __('No changesets found in Trash.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array('title', 'author'),
        'capability_type' => 'customize_changeset',
        'capabilities' => array('create_posts' => 'customize', 'delete_others_posts' => 'customize', 'delete_post' => 'customize', 'delete_posts' => 'customize', 'delete_private_posts' => 'customize', 'delete_published_posts' => 'customize', 'edit_others_posts' => 'customize', 'edit_post' => 'customize', 'edit_posts' => 'customize', 'edit_private_posts' => 'customize', 'edit_published_posts' => 'do_not_allow', 'publish_posts' => 'customize', 'read' => 'read', 'read_post' => 'customize', 'read_private_posts' => 'customize'),
    ));
    register_post_type('oembed_cache', array(
        'labels' => array('name' => __('oEmbed Responses'), 'singular_name' => __('oEmbed Response')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array(),
    ));
    register_post_type('user_request', array(
        'labels' => array('name' => __('User Requests'), 'singular_name' => __('User Request')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array(),
    ));
    register_post_type('wp_block', array(
        'labels' => array('name' => _x('Reusable blocks', 'post type general name'), 'singular_name' => _x('Reusable block', 'post type singular name'), 'add_new' => _x('Add New', 'Reusable block'), 'add_new_item' => __('Add new Reusable block'), 'new_item' => __('New Reusable block'), 'edit_item' => __('Edit Reusable block'), 'view_item' => __('View Reusable block'), 'all_items' => __('All Reusable blocks'), 'search_items' => __('Search Reusable blocks'), 'not_found' => __('No reusable blocks found.'), 'not_found_in_trash' => __('No reusable blocks found in Trash.'), 'filter_items_list' => __('Filter reusable blocks list'), 'items_list_navigation' => __('Reusable blocks list navigation'), 'items_list' => __('Reusable blocks list'), 'item_published' => __('Reusable block published.'), 'item_published_privately' => __('Reusable block published privately.'), 'item_reverted_to_draft' => __('Reusable block reverted to draft.'), 'item_scheduled' => __('Reusable block scheduled.'), 'item_updated' => __('Reusable block updated.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'show_ui' => true,
        'show_in_menu' => false,
        'rewrite' => false,
        'show_in_rest' => true,
        'rest_base' => 'blocks',
        'rest_controller_class' => 'WP_REST_Blocks_Controller',
        'capability_type' => 'block',
        'capabilities' => array(
            // You need to be able to edit posts, in order to read blocks in their raw form.
            'read' => 'edit_posts',
            // You need to be able to publish posts, in order to create blocks.
            'create_posts' => 'publish_posts',
            'edit_posts' => 'edit_posts',
            'edit_published_posts' => 'edit_published_posts',
            'delete_published_posts' => 'delete_published_posts',
            'edit_others_posts' => 'edit_others_posts',
            'delete_others_posts' => 'delete_others_posts',
        ),
        'map_meta_cap' => true,
        'supports' => array('title', 'editor', 'revisions'),
    ));
    register_post_type('wp_template', array(
        'labels' => array('name' => _x('Templates', 'post type general name'), 'singular_name' => _x('Template', 'post type singular name'), 'add_new' => _x('Add New', 'Template'), 'add_new_item' => __('Add New Template'), 'new_item' => __('New Template'), 'edit_item' => __('Edit Template'), 'view_item' => __('View Template'), 'all_items' => __('Templates'), 'search_items' => __('Search Templates'), 'parent_item_colon' => __('Parent Template:'), 'not_found' => __('No templates found.'), 'not_found_in_trash' => __('No templates found in Trash.'), 'archives' => __('Template archives'), 'insert_into_item' => __('Insert into template'), 'uploaded_to_this_item' => __('Uploaded to this template'), 'filter_items_list' => __('Filter templates list'), 'items_list_navigation' => __('Templates list navigation'), 'items_list' => __('Templates list')),
        'description' => __('Templates to include in your theme.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => false,
        'show_in_menu' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'rest_base' => 'templates',
        'rest_controller_class' => 'WP_REST_Templates_Controller',
        'capability_type' => array('template', 'templates'),
        'capabilities' => array('create_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'read' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options'),
        'map_meta_cap' => true,
        'supports' => array('title', 'slug', 'excerpt', 'editor', 'revisions', 'author'),
    ));
    register_post_type('wp_template_part', array(
        'labels' => array('name' => _x('Template Parts', 'post type general name'), 'singular_name' => _x('Template Part', 'post type singular name'), 'add_new' => _x('Add New', 'Template Part'), 'add_new_item' => __('Add New Template Part'), 'new_item' => __('New Template Part'), 'edit_item' => __('Edit Template Part'), 'view_item' => __('View Template Part'), 'all_items' => __('Template Parts'), 'search_items' => __('Search Template Parts'), 'parent_item_colon' => __('Parent Template Part:'), 'not_found' => __('No template parts found.'), 'not_found_in_trash' => __('No template parts found in Trash.'), 'archives' => __('Template part archives'), 'insert_into_item' => __('Insert into template part'), 'uploaded_to_this_item' => __('Uploaded to this template part'), 'filter_items_list' => __('Filter template parts list'), 'items_list_navigation' => __('Template parts list navigation'), 'items_list' => __('Template parts list')),
        'description' => __('Template parts to include in your templates.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => false,
        'show_in_menu' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'rest_base' => 'template-parts',
        'rest_controller_class' => 'WP_REST_Templates_Controller',
        'map_meta_cap' => true,
        'capabilities' => array('create_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'read' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options'),
        'supports' => array('title', 'slug', 'excerpt', 'editor', 'revisions', 'author'),
    ));
    register_post_type('wp_global_styles', array(
        'label' => _x('Global Styles', 'post type general name'),
        'description' => __('Global styles to include in themes.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'show_ui' => false,
        'show_in_rest' => false,
        'rewrite' => false,
        'capabilities' => array('read' => 'edit_theme_options', 'create_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options'),
        'map_meta_cap' => true,
        'supports' => array('title', 'editor', 'revisions'),
    ));
    register_post_type('wp_navigation', array(
        'labels' => array('name' => _x('Navigation Menus', 'post type general name'), 'singular_name' => _x('Navigation Menu', 'post type singular name'), 'add_new' => _x('Add New', 'Navigation Menu'), 'add_new_item' => __('Add New Navigation Menu'), 'new_item' => __('New Navigation Menu'), 'edit_item' => __('Edit Navigation Menu'), 'view_item' => __('View Navigation Menu'), 'all_items' => __('Navigation Menus'), 'search_items' => __('Search Navigation Menus'), 'parent_item_colon' => __('Parent Navigation Menu:'), 'not_found' => __('No Navigation Menu found.'), 'not_found_in_trash' => __('No Navigation Menu found in Trash.'), 'archives' => __('Navigation Menu archives'), 'insert_into_item' => __('Insert into Navigation Menu'), 'uploaded_to_this_item' => __('Uploaded to this Navigation Menu'), 'filter_items_list' => __('Filter Navigation Menu list'), 'items_list_navigation' => __('Navigation Menus list navigation'), 'items_list' => __('Navigation Menus list')),
        'description' => __('Navigation menus that can be inserted into your site.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => true,
        'show_in_menu' => false,
        'show_in_admin_bar' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'map_meta_cap' => true,
        'capabilities' => array('edit_others_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'create_posts' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options'),
        'rest_base' => 'navigation',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
        'supports' => array('title', 'editor', 'revisions'),
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of published posts. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of scheduled posts. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of draft posts. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending posts. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of private posts. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of trashed posts. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array(
        'label' => 'auto-draft',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'date_floating' => true,
    ));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-pending', array(
        'label' => _x('Pending', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending requests. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-confirmed', array(
        'label' => _x('Confirmed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of confirmed requests. */
        'label_count' => _n_noop('Confirmed <span class="count">(%s)</span>', 'Confirmed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-failed', array(
        'label' => _x('Failed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of failed requests. */
        'label_count' => _n_noop('Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-completed', array(
        'label' => _x('Completed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of completed requests. */
        'label_count' => _n_noop('Completed <span class="count">(%s)</span>', 'Completed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
}

WordPress Version: 5.9

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type registration.
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * See {@see 'init'}.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new from admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'menu_icon' => 'dashicons-admin-post',
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
        'show_in_rest' => true,
        'rest_base' => 'posts',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new from admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'menu_icon' => 'dashicons-admin-page',
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
        'show_in_rest' => true,
        'rest_base' => 'pages',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'add new media'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page'), 'attributes' => __('Attachment Attributes')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'menu_icon' => 'dashicons-admin-media',
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
        'show_in_rest' => true,
        'rest_base' => 'media',
        'rest_controller_class' => 'WP_REST_Attachments_Controller',
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
        'map_meta_cap' => true,
        'capability_type' => array('edit_theme_options', 'edit_theme_options'),
        'capabilities' => array(
            // Meta Capabilities.
            'edit_post' => 'edit_post',
            'read_post' => 'read_post',
            'delete_post' => 'delete_post',
            // Primitive Capabilities.
            'edit_posts' => 'edit_theme_options',
            'edit_others_posts' => 'edit_theme_options',
            'delete_posts' => 'edit_theme_options',
            'publish_posts' => 'edit_theme_options',
            'read_private_posts' => 'edit_theme_options',
            'read' => 'read',
            'delete_private_posts' => 'edit_theme_options',
            'delete_published_posts' => 'edit_theme_options',
            'delete_others_posts' => 'edit_theme_options',
            'edit_private_posts' => 'edit_theme_options',
            'edit_published_posts' => 'edit_theme_options',
        ),
        'show_in_rest' => true,
        'rest_base' => 'menu-items',
        'rest_controller_class' => 'WP_REST_Menu_Items_Controller',
    ));
    register_post_type('custom_css', array(
        'labels' => array('name' => __('Custom CSS'), 'singular_name' => __('Custom CSS')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array('title', 'revisions'),
        'capabilities' => array('delete_posts' => 'edit_theme_options', 'delete_post' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_post' => 'edit_css', 'edit_posts' => 'edit_css', 'edit_others_posts' => 'edit_css', 'edit_published_posts' => 'edit_css', 'read_post' => 'read', 'read_private_posts' => 'read', 'publish_posts' => 'edit_theme_options'),
    ));
    register_post_type('customize_changeset', array(
        'labels' => array('name' => _x('Changesets', 'post type general name'), 'singular_name' => _x('Changeset', 'post type singular name'), 'add_new' => _x('Add New', 'Customize Changeset'), 'add_new_item' => __('Add New Changeset'), 'new_item' => __('New Changeset'), 'edit_item' => __('Edit Changeset'), 'view_item' => __('View Changeset'), 'all_items' => __('All Changesets'), 'search_items' => __('Search Changesets'), 'not_found' => __('No changesets found.'), 'not_found_in_trash' => __('No changesets found in Trash.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array('title', 'author'),
        'capability_type' => 'customize_changeset',
        'capabilities' => array('create_posts' => 'customize', 'delete_others_posts' => 'customize', 'delete_post' => 'customize', 'delete_posts' => 'customize', 'delete_private_posts' => 'customize', 'delete_published_posts' => 'customize', 'edit_others_posts' => 'customize', 'edit_post' => 'customize', 'edit_posts' => 'customize', 'edit_private_posts' => 'customize', 'edit_published_posts' => 'do_not_allow', 'publish_posts' => 'customize', 'read' => 'read', 'read_post' => 'customize', 'read_private_posts' => 'customize'),
    ));
    register_post_type('oembed_cache', array(
        'labels' => array('name' => __('oEmbed Responses'), 'singular_name' => __('oEmbed Response')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array(),
    ));
    register_post_type('user_request', array(
        'labels' => array('name' => __('User Requests'), 'singular_name' => __('User Request')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array(),
    ));
    register_post_type('wp_block', array(
        'labels' => array('name' => _x('Reusable blocks', 'post type general name'), 'singular_name' => _x('Reusable block', 'post type singular name'), 'add_new' => _x('Add New', 'Reusable block'), 'add_new_item' => __('Add new Reusable block'), 'new_item' => __('New Reusable block'), 'edit_item' => __('Edit Reusable block'), 'view_item' => __('View Reusable block'), 'all_items' => __('All Reusable blocks'), 'search_items' => __('Search Reusable blocks'), 'not_found' => __('No reusable blocks found.'), 'not_found_in_trash' => __('No reusable blocks found in Trash.'), 'filter_items_list' => __('Filter reusable blocks list'), 'items_list_navigation' => __('Reusable blocks list navigation'), 'items_list' => __('Reusable blocks list'), 'item_published' => __('Reusable block published.'), 'item_published_privately' => __('Reusable block published privately.'), 'item_reverted_to_draft' => __('Reusable block reverted to draft.'), 'item_scheduled' => __('Reusable block scheduled.'), 'item_updated' => __('Reusable block updated.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'show_ui' => true,
        'show_in_menu' => false,
        'rewrite' => false,
        'show_in_rest' => true,
        'rest_base' => 'blocks',
        'rest_controller_class' => 'WP_REST_Blocks_Controller',
        'capability_type' => 'block',
        'capabilities' => array(
            // You need to be able to edit posts, in order to read blocks in their raw form.
            'read' => 'edit_posts',
            // You need to be able to publish posts, in order to create blocks.
            'create_posts' => 'publish_posts',
            'edit_posts' => 'edit_posts',
            'edit_published_posts' => 'edit_published_posts',
            'delete_published_posts' => 'delete_published_posts',
            'edit_others_posts' => 'edit_others_posts',
            'delete_others_posts' => 'delete_others_posts',
        ),
        'map_meta_cap' => true,
        'supports' => array('title', 'editor', 'revisions'),
    ));
    register_post_type('wp_template', array(
        'labels' => array('name' => _x('Templates', 'post type general name'), 'singular_name' => _x('Template', 'post type singular name'), 'add_new' => _x('Add New', 'Template'), 'add_new_item' => __('Add New Template'), 'new_item' => __('New Template'), 'edit_item' => __('Edit Template'), 'view_item' => __('View Template'), 'all_items' => __('Templates'), 'search_items' => __('Search Templates'), 'parent_item_colon' => __('Parent Template:'), 'not_found' => __('No templates found.'), 'not_found_in_trash' => __('No templates found in Trash.'), 'archives' => __('Template archives'), 'insert_into_item' => __('Insert into template'), 'uploaded_to_this_item' => __('Uploaded to this template'), 'filter_items_list' => __('Filter templates list'), 'items_list_navigation' => __('Templates list navigation'), 'items_list' => __('Templates list')),
        'description' => __('Templates to include in your theme.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => wp_is_block_theme(),
        'show_in_menu' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'rest_base' => 'templates',
        'rest_controller_class' => 'WP_REST_Templates_Controller',
        'capability_type' => array('template', 'templates'),
        'capabilities' => array('create_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'read' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options'),
        'map_meta_cap' => true,
        'supports' => array('title', 'slug', 'excerpt', 'editor', 'revisions', 'author'),
    ));
    register_post_type('wp_template_part', array(
        'labels' => array('name' => _x('Template Parts', 'post type general name'), 'singular_name' => _x('Template Part', 'post type singular name'), 'add_new' => _x('Add New', 'Template Part'), 'add_new_item' => __('Add New Template Part'), 'new_item' => __('New Template Part'), 'edit_item' => __('Edit Template Part'), 'view_item' => __('View Template Part'), 'all_items' => __('Template Parts'), 'search_items' => __('Search Template Parts'), 'parent_item_colon' => __('Parent Template Part:'), 'not_found' => __('No template parts found.'), 'not_found_in_trash' => __('No template parts found in Trash.'), 'archives' => __('Template part archives'), 'insert_into_item' => __('Insert into template part'), 'uploaded_to_this_item' => __('Uploaded to this template part'), 'filter_items_list' => __('Filter template parts list'), 'items_list_navigation' => __('Template parts list navigation'), 'items_list' => __('Template parts list')),
        'description' => __('Template parts to include in your templates.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => wp_is_block_theme(),
        'show_in_menu' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'rest_base' => 'template-parts',
        'rest_controller_class' => 'WP_REST_Templates_Controller',
        'map_meta_cap' => true,
        'capabilities' => array('create_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'read' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options'),
        'supports' => array('title', 'slug', 'excerpt', 'editor', 'revisions', 'author'),
    ));
    register_post_type('wp_global_styles', array(
        'label' => _x('Global Styles', 'post type general name'),
        'description' => __('Global styles to include in themes.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'show_ui' => false,
        'show_in_rest' => false,
        'rewrite' => false,
        'capabilities' => array('read' => 'edit_theme_options', 'create_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options'),
        'map_meta_cap' => true,
        'supports' => array('title', 'editor', 'revisions'),
    ));
    register_post_type('wp_navigation', array(
        'labels' => array('name' => _x('Navigation Menus', 'post type general name'), 'singular_name' => _x('Navigation Menu', 'post type singular name'), 'add_new' => _x('Add New', 'Navigation Menu'), 'add_new_item' => __('Add New Navigation Menu'), 'new_item' => __('New Navigation Menu'), 'edit_item' => __('Edit Navigation Menu'), 'view_item' => __('View Navigation Menu'), 'all_items' => __('Navigation Menus'), 'search_items' => __('Search Navigation Menus'), 'parent_item_colon' => __('Parent Navigation Menu:'), 'not_found' => __('No Navigation Menu found.'), 'not_found_in_trash' => __('No Navigation Menu found in Trash.'), 'archives' => __('Navigation Menu archives'), 'insert_into_item' => __('Insert into Navigation Menu'), 'uploaded_to_this_item' => __('Uploaded to this Navigation Menu'), 'filter_items_list' => __('Filter Navigation Menu list'), 'items_list_navigation' => __('Navigation Menus list navigation'), 'items_list' => __('Navigation Menus list')),
        'description' => __('Navigation menus that can be inserted into your site.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => wp_is_block_theme(),
        'show_in_menu' => false,
        'show_in_admin_bar' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'map_meta_cap' => true,
        'capabilities' => array('edit_others_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'create_posts' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options'),
        'rest_base' => 'navigation',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
        'supports' => array('title', 'editor', 'revisions'),
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of published posts. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of scheduled posts. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of draft posts. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending posts. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of private posts. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of trashed posts. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array(
        'label' => 'auto-draft',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'date_floating' => true,
    ));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-pending', array(
        'label' => _x('Pending', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending requests. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-confirmed', array(
        'label' => _x('Confirmed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of confirmed requests. */
        'label_count' => _n_noop('Confirmed <span class="count">(%s)</span>', 'Confirmed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-failed', array(
        'label' => _x('Failed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of failed requests. */
        'label_count' => _n_noop('Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-completed', array(
        'label' => _x('Completed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of completed requests. */
        'label_count' => _n_noop('Completed <span class="count">(%s)</span>', 'Completed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
}

WordPress Version: 5.8

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type registration.
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * See {@see 'init'}.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new from admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'menu_icon' => 'dashicons-admin-post',
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
        'show_in_rest' => true,
        'rest_base' => 'posts',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new from admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'menu_icon' => 'dashicons-admin-page',
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
        'show_in_rest' => true,
        'rest_base' => 'pages',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'add new media'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page'), 'attributes' => __('Attachment Attributes')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'menu_icon' => 'dashicons-admin-media',
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
        'show_in_rest' => true,
        'rest_base' => 'media',
        'rest_controller_class' => 'WP_REST_Attachments_Controller',
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
    ));
    register_post_type('custom_css', array(
        'labels' => array('name' => __('Custom CSS'), 'singular_name' => __('Custom CSS')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array('title', 'revisions'),
        'capabilities' => array('delete_posts' => 'edit_theme_options', 'delete_post' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_post' => 'edit_css', 'edit_posts' => 'edit_css', 'edit_others_posts' => 'edit_css', 'edit_published_posts' => 'edit_css', 'read_post' => 'read', 'read_private_posts' => 'read', 'publish_posts' => 'edit_theme_options'),
    ));
    register_post_type('customize_changeset', array(
        'labels' => array('name' => _x('Changesets', 'post type general name'), 'singular_name' => _x('Changeset', 'post type singular name'), 'add_new' => _x('Add New', 'Customize Changeset'), 'add_new_item' => __('Add New Changeset'), 'new_item' => __('New Changeset'), 'edit_item' => __('Edit Changeset'), 'view_item' => __('View Changeset'), 'all_items' => __('All Changesets'), 'search_items' => __('Search Changesets'), 'not_found' => __('No changesets found.'), 'not_found_in_trash' => __('No changesets found in Trash.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array('title', 'author'),
        'capability_type' => 'customize_changeset',
        'capabilities' => array('create_posts' => 'customize', 'delete_others_posts' => 'customize', 'delete_post' => 'customize', 'delete_posts' => 'customize', 'delete_private_posts' => 'customize', 'delete_published_posts' => 'customize', 'edit_others_posts' => 'customize', 'edit_post' => 'customize', 'edit_posts' => 'customize', 'edit_private_posts' => 'customize', 'edit_published_posts' => 'do_not_allow', 'publish_posts' => 'customize', 'read' => 'read', 'read_post' => 'customize', 'read_private_posts' => 'customize'),
    ));
    register_post_type('oembed_cache', array(
        'labels' => array('name' => __('oEmbed Responses'), 'singular_name' => __('oEmbed Response')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array(),
    ));
    register_post_type('user_request', array(
        'labels' => array('name' => __('User Requests'), 'singular_name' => __('User Request')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array(),
    ));
    register_post_type('wp_block', array(
        'labels' => array('name' => _x('Reusable blocks', 'post type general name'), 'singular_name' => _x('Reusable block', 'post type singular name'), 'add_new' => _x('Add New', 'Reusable block'), 'add_new_item' => __('Add new Reusable block'), 'new_item' => __('New Reusable block'), 'edit_item' => __('Edit Reusable block'), 'view_item' => __('View Reusable block'), 'all_items' => __('All Reusable blocks'), 'search_items' => __('Search Reusable blocks'), 'not_found' => __('No reusable blocks found.'), 'not_found_in_trash' => __('No reusable blocks found in Trash.'), 'filter_items_list' => __('Filter reusable blocks list'), 'items_list_navigation' => __('Reusable blocks list navigation'), 'items_list' => __('Reusable blocks list'), 'item_published' => __('Reusable block published.'), 'item_published_privately' => __('Reusable block published privately.'), 'item_reverted_to_draft' => __('Reusable block reverted to draft.'), 'item_scheduled' => __('Reusable block scheduled.'), 'item_updated' => __('Reusable block updated.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'show_ui' => true,
        'show_in_menu' => false,
        'rewrite' => false,
        'show_in_rest' => true,
        'rest_base' => 'blocks',
        'rest_controller_class' => 'WP_REST_Blocks_Controller',
        'capability_type' => 'block',
        'capabilities' => array(
            // You need to be able to edit posts, in order to read blocks in their raw form.
            'read' => 'edit_posts',
            // You need to be able to publish posts, in order to create blocks.
            'create_posts' => 'publish_posts',
            'edit_posts' => 'edit_posts',
            'edit_published_posts' => 'edit_published_posts',
            'delete_published_posts' => 'delete_published_posts',
            'edit_others_posts' => 'edit_others_posts',
            'delete_others_posts' => 'delete_others_posts',
        ),
        'map_meta_cap' => true,
        'supports' => array('title', 'editor', 'revisions'),
    ));
    register_post_type('wp_template', array(
        'labels' => array('name' => __('Templates'), 'singular_name' => __('Template'), 'add_new' => _x('Add New', 'Template'), 'add_new_item' => __('Add New Template'), 'new_item' => __('New Template'), 'edit_item' => __('Edit Template'), 'view_item' => __('View Template'), 'all_items' => __('All Templates'), 'search_items' => __('Search Templates'), 'parent_item_colon' => __('Parent Template:'), 'not_found' => __('No templates found.'), 'not_found_in_trash' => __('No templates found in Trash.'), 'archives' => __('Template archives'), 'insert_into_item' => __('Insert into template'), 'uploaded_to_this_item' => __('Uploaded to this template'), 'filter_items_list' => __('Filter templates list'), 'items_list_navigation' => __('Templates list navigation'), 'items_list' => __('Templates list')),
        'description' => __('Templates to include in your theme.'),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'has_archive' => false,
        'show_ui' => false,
        'show_in_menu' => false,
        'show_in_rest' => true,
        'rewrite' => false,
        'rest_base' => 'templates',
        'rest_controller_class' => 'WP_REST_Templates_Controller',
        'capability_type' => array('template', 'templates'),
        'capabilities' => array('create_posts' => 'edit_theme_options', 'delete_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'edit_posts' => 'edit_theme_options', 'edit_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', 'publish_posts' => 'edit_theme_options', 'read' => 'edit_theme_options', 'read_private_posts' => 'edit_theme_options'),
        'map_meta_cap' => true,
        'supports' => array('title', 'slug', 'excerpt', 'editor', 'revisions'),
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of published posts. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of scheduled posts. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of draft posts. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending posts. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of private posts. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of trashed posts. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array(
        'label' => 'auto-draft',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'date_floating' => true,
    ));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-pending', array(
        'label' => _x('Pending', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending requests. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-confirmed', array(
        'label' => _x('Confirmed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of confirmed requests. */
        'label_count' => _n_noop('Confirmed <span class="count">(%s)</span>', 'Confirmed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-failed', array(
        'label' => _x('Failed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of failed requests. */
        'label_count' => _n_noop('Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-completed', array(
        'label' => _x('Completed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of completed requests. */
        'label_count' => _n_noop('Completed <span class="count">(%s)</span>', 'Completed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
}

WordPress Version: 5.6

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type registration.
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * See {@see 'init'}.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new from admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'menu_icon' => 'dashicons-admin-post',
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
        'show_in_rest' => true,
        'rest_base' => 'posts',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new from admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'menu_icon' => 'dashicons-admin-page',
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
        'show_in_rest' => true,
        'rest_base' => 'pages',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'add new media'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page'), 'attributes' => __('Attachment Attributes')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'menu_icon' => 'dashicons-admin-media',
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
        'show_in_rest' => true,
        'rest_base' => 'media',
        'rest_controller_class' => 'WP_REST_Attachments_Controller',
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
    ));
    register_post_type('custom_css', array(
        'labels' => array('name' => __('Custom CSS'), 'singular_name' => __('Custom CSS')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array('title', 'revisions'),
        'capabilities' => array('delete_posts' => 'edit_theme_options', 'delete_post' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_post' => 'edit_css', 'edit_posts' => 'edit_css', 'edit_others_posts' => 'edit_css', 'edit_published_posts' => 'edit_css', 'read_post' => 'read', 'read_private_posts' => 'read', 'publish_posts' => 'edit_theme_options'),
    ));
    register_post_type('customize_changeset', array(
        'labels' => array('name' => _x('Changesets', 'post type general name'), 'singular_name' => _x('Changeset', 'post type singular name'), 'menu_name' => _x('Changesets', 'admin menu'), 'name_admin_bar' => _x('Changeset', 'add new on admin bar'), 'add_new' => _x('Add New', 'Customize Changeset'), 'add_new_item' => __('Add New Changeset'), 'new_item' => __('New Changeset'), 'edit_item' => __('Edit Changeset'), 'view_item' => __('View Changeset'), 'all_items' => __('All Changesets'), 'search_items' => __('Search Changesets'), 'not_found' => __('No changesets found.'), 'not_found_in_trash' => __('No changesets found in Trash.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array('title', 'author'),
        'capability_type' => 'customize_changeset',
        'capabilities' => array('create_posts' => 'customize', 'delete_others_posts' => 'customize', 'delete_post' => 'customize', 'delete_posts' => 'customize', 'delete_private_posts' => 'customize', 'delete_published_posts' => 'customize', 'edit_others_posts' => 'customize', 'edit_post' => 'customize', 'edit_posts' => 'customize', 'edit_private_posts' => 'customize', 'edit_published_posts' => 'do_not_allow', 'publish_posts' => 'customize', 'read' => 'read', 'read_post' => 'customize', 'read_private_posts' => 'customize'),
    ));
    register_post_type('oembed_cache', array(
        'labels' => array('name' => __('oEmbed Responses'), 'singular_name' => __('oEmbed Response')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array(),
    ));
    register_post_type('user_request', array(
        'labels' => array('name' => __('User Requests'), 'singular_name' => __('User Request')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array(),
    ));
    register_post_type('wp_block', array(
        'labels' => array('name' => _x('Reusable Blocks', 'post type general name'), 'singular_name' => _x('Reusable Block', 'post type singular name'), 'menu_name' => _x('Reusable Blocks', 'admin menu'), 'name_admin_bar' => _x('Reusable Block', 'add new on admin bar'), 'add_new' => _x('Add New', 'Reusable Block'), 'add_new_item' => __('Add New Reusable Block'), 'new_item' => __('New Reusable Block'), 'edit_item' => __('Edit Reusable Block'), 'view_item' => __('View Reusable Block'), 'all_items' => __('All Reusable Blocks'), 'search_items' => __('Search Reusable Blocks'), 'not_found' => __('No reusable blocks found.'), 'not_found_in_trash' => __('No reusable blocks found in Trash.'), 'filter_items_list' => __('Filter reusable blocks list'), 'items_list_navigation' => __('Reusable Blocks list navigation'), 'items_list' => __('Reusable Blocks list'), 'item_published' => __('Reusable Block published.'), 'item_published_privately' => __('Reusable Block published privately.'), 'item_reverted_to_draft' => __('Reusable Block reverted to draft.'), 'item_scheduled' => __('Reusable Block scheduled.'), 'item_updated' => __('Reusable Block updated.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'show_ui' => true,
        'show_in_menu' => false,
        'rewrite' => false,
        'show_in_rest' => true,
        'rest_base' => 'blocks',
        'rest_controller_class' => 'WP_REST_Blocks_Controller',
        'capability_type' => 'block',
        'capabilities' => array(
            // You need to be able to edit posts, in order to read blocks in their raw form.
            'read' => 'edit_posts',
            // You need to be able to publish posts, in order to create blocks.
            'create_posts' => 'publish_posts',
            'edit_posts' => 'edit_posts',
            'edit_published_posts' => 'edit_published_posts',
            'delete_published_posts' => 'delete_published_posts',
            'edit_others_posts' => 'edit_others_posts',
            'delete_others_posts' => 'delete_others_posts',
        ),
        'map_meta_cap' => true,
        'supports' => array('title', 'editor'),
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of published posts. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of scheduled posts. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of draft posts. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending posts. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of private posts. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of trashed posts. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array(
        'label' => 'auto-draft',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'date_floating' => true,
    ));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-pending', array(
        'label' => _x('Pending', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending requests. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-confirmed', array(
        'label' => _x('Confirmed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of confirmed requests. */
        'label_count' => _n_noop('Confirmed <span class="count">(%s)</span>', 'Confirmed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-failed', array(
        'label' => _x('Failed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of failed requests. */
        'label_count' => _n_noop('Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-completed', array(
        'label' => _x('Completed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of completed requests. */
        'label_count' => _n_noop('Completed <span class="count">(%s)</span>', 'Completed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
}

WordPress Version: 5.4

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type registration.
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * See {@see 'init'}.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new from admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'menu_icon' => 'dashicons-admin-post',
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
        'show_in_rest' => true,
        'rest_base' => 'posts',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new from admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'menu_icon' => 'dashicons-admin-page',
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
        'show_in_rest' => true,
        'rest_base' => 'pages',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'add new media'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page'), 'attributes' => __('Attachment Attributes')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'menu_icon' => 'dashicons-admin-media',
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
        'show_in_rest' => true,
        'rest_base' => 'media',
        'rest_controller_class' => 'WP_REST_Attachments_Controller',
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
    ));
    register_post_type('custom_css', array(
        'labels' => array('name' => __('Custom CSS'), 'singular_name' => __('Custom CSS')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array('title', 'revisions'),
        'capabilities' => array('delete_posts' => 'edit_theme_options', 'delete_post' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_post' => 'edit_css', 'edit_posts' => 'edit_css', 'edit_others_posts' => 'edit_css', 'edit_published_posts' => 'edit_css', 'read_post' => 'read', 'read_private_posts' => 'read', 'publish_posts' => 'edit_theme_options'),
    ));
    register_post_type('customize_changeset', array(
        'labels' => array('name' => _x('Changesets', 'post type general name'), 'singular_name' => _x('Changeset', 'post type singular name'), 'menu_name' => _x('Changesets', 'admin menu'), 'name_admin_bar' => _x('Changeset', 'add new on admin bar'), 'add_new' => _x('Add New', 'Customize Changeset'), 'add_new_item' => __('Add New Changeset'), 'new_item' => __('New Changeset'), 'edit_item' => __('Edit Changeset'), 'view_item' => __('View Changeset'), 'all_items' => __('All Changesets'), 'search_items' => __('Search Changesets'), 'not_found' => __('No changesets found.'), 'not_found_in_trash' => __('No changesets found in Trash.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array('title', 'author'),
        'capability_type' => 'customize_changeset',
        'capabilities' => array('create_posts' => 'customize', 'delete_others_posts' => 'customize', 'delete_post' => 'customize', 'delete_posts' => 'customize', 'delete_private_posts' => 'customize', 'delete_published_posts' => 'customize', 'edit_others_posts' => 'customize', 'edit_post' => 'customize', 'edit_posts' => 'customize', 'edit_private_posts' => 'customize', 'edit_published_posts' => 'do_not_allow', 'publish_posts' => 'customize', 'read' => 'read', 'read_post' => 'customize', 'read_private_posts' => 'customize'),
    ));
    register_post_type('oembed_cache', array(
        'labels' => array('name' => __('oEmbed Responses'), 'singular_name' => __('oEmbed Response')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array(),
    ));
    register_post_type('user_request', array(
        'labels' => array('name' => __('User Requests'), 'singular_name' => __('User Request')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array(),
    ));
    register_post_type('wp_block', array(
        'labels' => array('name' => _x('Blocks', 'post type general name'), 'singular_name' => _x('Block', 'post type singular name'), 'menu_name' => _x('Blocks', 'admin menu'), 'name_admin_bar' => _x('Block', 'add new on admin bar'), 'add_new' => _x('Add New', 'Block'), 'add_new_item' => __('Add New Block'), 'new_item' => __('New Block'), 'edit_item' => __('Edit Block'), 'view_item' => __('View Block'), 'all_items' => __('All Blocks'), 'search_items' => __('Search Blocks'), 'not_found' => __('No blocks found.'), 'not_found_in_trash' => __('No blocks found in Trash.'), 'filter_items_list' => __('Filter blocks list'), 'items_list_navigation' => __('Blocks list navigation'), 'items_list' => __('Blocks list'), 'item_published' => __('Block published.'), 'item_published_privately' => __('Block published privately.'), 'item_reverted_to_draft' => __('Block reverted to draft.'), 'item_scheduled' => __('Block scheduled.'), 'item_updated' => __('Block updated.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'show_ui' => true,
        'show_in_menu' => false,
        'rewrite' => false,
        'show_in_rest' => true,
        'rest_base' => 'blocks',
        'rest_controller_class' => 'WP_REST_Blocks_Controller',
        'capability_type' => 'block',
        'capabilities' => array(
            // You need to be able to edit posts, in order to read blocks in their raw form.
            'read' => 'edit_posts',
            // You need to be able to publish posts, in order to create blocks.
            'create_posts' => 'publish_posts',
            'edit_posts' => 'edit_posts',
            'edit_published_posts' => 'edit_published_posts',
            'delete_published_posts' => 'delete_published_posts',
            'edit_others_posts' => 'edit_others_posts',
            'delete_others_posts' => 'delete_others_posts',
        ),
        'map_meta_cap' => true,
        'supports' => array('title', 'editor'),
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of published posts. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of scheduled posts. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of draft posts. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending posts. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of private posts. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of trashed posts. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array(
        'label' => 'auto-draft',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'date_floating' => true,
    ));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-pending', array(
        'label' => _x('Pending', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending requests. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-confirmed', array(
        'label' => _x('Confirmed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of confirmed requests. */
        'label_count' => _n_noop('Confirmed <span class="count">(%s)</span>', 'Confirmed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-failed', array(
        'label' => _x('Failed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of failed requests. */
        'label_count' => _n_noop('Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-completed', array(
        'label' => _x('Completed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of completed requests. */
        'label_count' => _n_noop('Completed <span class="count">(%s)</span>', 'Completed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
}

WordPress Version: 5.3

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type Registration
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * See {@see 'init'}.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new from admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
        'show_in_rest' => true,
        'rest_base' => 'posts',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new from admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
        'show_in_rest' => true,
        'rest_base' => 'pages',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'add new media'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page'), 'attributes' => __('Attachment Attributes')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
        'show_in_rest' => true,
        'rest_base' => 'media',
        'rest_controller_class' => 'WP_REST_Attachments_Controller',
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
    ));
    register_post_type('custom_css', array(
        'labels' => array('name' => __('Custom CSS'), 'singular_name' => __('Custom CSS')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array('title', 'revisions'),
        'capabilities' => array('delete_posts' => 'edit_theme_options', 'delete_post' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_post' => 'edit_css', 'edit_posts' => 'edit_css', 'edit_others_posts' => 'edit_css', 'edit_published_posts' => 'edit_css', 'read_post' => 'read', 'read_private_posts' => 'read', 'publish_posts' => 'edit_theme_options'),
    ));
    register_post_type('customize_changeset', array(
        'labels' => array('name' => _x('Changesets', 'post type general name'), 'singular_name' => _x('Changeset', 'post type singular name'), 'menu_name' => _x('Changesets', 'admin menu'), 'name_admin_bar' => _x('Changeset', 'add new on admin bar'), 'add_new' => _x('Add New', 'Customize Changeset'), 'add_new_item' => __('Add New Changeset'), 'new_item' => __('New Changeset'), 'edit_item' => __('Edit Changeset'), 'view_item' => __('View Changeset'), 'all_items' => __('All Changesets'), 'search_items' => __('Search Changesets'), 'not_found' => __('No changesets found.'), 'not_found_in_trash' => __('No changesets found in Trash.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array('title', 'author'),
        'capability_type' => 'customize_changeset',
        'capabilities' => array('create_posts' => 'customize', 'delete_others_posts' => 'customize', 'delete_post' => 'customize', 'delete_posts' => 'customize', 'delete_private_posts' => 'customize', 'delete_published_posts' => 'customize', 'edit_others_posts' => 'customize', 'edit_post' => 'customize', 'edit_posts' => 'customize', 'edit_private_posts' => 'customize', 'edit_published_posts' => 'do_not_allow', 'publish_posts' => 'customize', 'read' => 'read', 'read_post' => 'customize', 'read_private_posts' => 'customize'),
    ));
    register_post_type('oembed_cache', array(
        'labels' => array('name' => __('oEmbed Responses'), 'singular_name' => __('oEmbed Response')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array(),
    ));
    register_post_type('user_request', array(
        'labels' => array('name' => __('User Requests'), 'singular_name' => __('User Request')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array(),
    ));
    register_post_type('wp_block', array(
        'labels' => array('name' => _x('Blocks', 'post type general name'), 'singular_name' => _x('Block', 'post type singular name'), 'menu_name' => _x('Blocks', 'admin menu'), 'name_admin_bar' => _x('Block', 'add new on admin bar'), 'add_new' => _x('Add New', 'Block'), 'add_new_item' => __('Add New Block'), 'new_item' => __('New Block'), 'edit_item' => __('Edit Block'), 'view_item' => __('View Block'), 'all_items' => __('All Blocks'), 'search_items' => __('Search Blocks'), 'not_found' => __('No blocks found.'), 'not_found_in_trash' => __('No blocks found in Trash.'), 'filter_items_list' => __('Filter blocks list'), 'items_list_navigation' => __('Blocks list navigation'), 'items_list' => __('Blocks list'), 'item_published' => __('Block published.'), 'item_published_privately' => __('Block published privately.'), 'item_reverted_to_draft' => __('Block reverted to draft.'), 'item_scheduled' => __('Block scheduled.'), 'item_updated' => __('Block updated.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'show_ui' => true,
        'show_in_menu' => false,
        'rewrite' => false,
        'show_in_rest' => true,
        'rest_base' => 'blocks',
        'rest_controller_class' => 'WP_REST_Blocks_Controller',
        'capability_type' => 'block',
        'capabilities' => array(
            // You need to be able to edit posts, in order to read blocks in their raw form.
            'read' => 'edit_posts',
            // You need to be able to publish posts, in order to create blocks.
            'create_posts' => 'publish_posts',
            'edit_posts' => 'edit_posts',
            'edit_published_posts' => 'edit_published_posts',
            'delete_published_posts' => 'delete_published_posts',
            'edit_others_posts' => 'edit_others_posts',
            'delete_others_posts' => 'delete_others_posts',
        ),
        'map_meta_cap' => true,
        'supports' => array('title', 'editor'),
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of published posts. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of scheduled posts. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of draft posts. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending posts. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'date_floating' => true,
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of private posts. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of trashed posts. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array(
        'label' => 'auto-draft',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'date_floating' => true,
    ));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-pending', array(
        'label' => _x('Pending', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of pending requests. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-confirmed', array(
        'label' => _x('Confirmed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of confirmed requests. */
        'label_count' => _n_noop('Confirmed <span class="count">(%s)</span>', 'Confirmed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-failed', array(
        'label' => _x('Failed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of failed requests. */
        'label_count' => _n_noop('Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-completed', array(
        'label' => _x('Completed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        /* translators: %s: Number of completed requests. */
        'label_count' => _n_noop('Completed <span class="count">(%s)</span>', 'Completed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
}

WordPress Version: 5.1

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type Registration
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * See {@see 'init'}.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new from admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
        'show_in_rest' => true,
        'rest_base' => 'posts',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new from admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
        'show_in_rest' => true,
        'rest_base' => 'pages',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'add new media'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page'), 'attributes' => __('Attachment Attributes')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
        'show_in_rest' => true,
        'rest_base' => 'media',
        'rest_controller_class' => 'WP_REST_Attachments_Controller',
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
    ));
    register_post_type('custom_css', array(
        'labels' => array('name' => __('Custom CSS'), 'singular_name' => __('Custom CSS')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array('title', 'revisions'),
        'capabilities' => array('delete_posts' => 'edit_theme_options', 'delete_post' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_post' => 'edit_css', 'edit_posts' => 'edit_css', 'edit_others_posts' => 'edit_css', 'edit_published_posts' => 'edit_css', 'read_post' => 'read', 'read_private_posts' => 'read', 'publish_posts' => 'edit_theme_options'),
    ));
    register_post_type('customize_changeset', array(
        'labels' => array('name' => _x('Changesets', 'post type general name'), 'singular_name' => _x('Changeset', 'post type singular name'), 'menu_name' => _x('Changesets', 'admin menu'), 'name_admin_bar' => _x('Changeset', 'add new on admin bar'), 'add_new' => _x('Add New', 'Customize Changeset'), 'add_new_item' => __('Add New Changeset'), 'new_item' => __('New Changeset'), 'edit_item' => __('Edit Changeset'), 'view_item' => __('View Changeset'), 'all_items' => __('All Changesets'), 'search_items' => __('Search Changesets'), 'not_found' => __('No changesets found.'), 'not_found_in_trash' => __('No changesets found in Trash.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array('title', 'author'),
        'capability_type' => 'customize_changeset',
        'capabilities' => array('create_posts' => 'customize', 'delete_others_posts' => 'customize', 'delete_post' => 'customize', 'delete_posts' => 'customize', 'delete_private_posts' => 'customize', 'delete_published_posts' => 'customize', 'edit_others_posts' => 'customize', 'edit_post' => 'customize', 'edit_posts' => 'customize', 'edit_private_posts' => 'customize', 'edit_published_posts' => 'do_not_allow', 'publish_posts' => 'customize', 'read' => 'read', 'read_post' => 'customize', 'read_private_posts' => 'customize'),
    ));
    register_post_type('oembed_cache', array(
        'labels' => array('name' => __('oEmbed Responses'), 'singular_name' => __('oEmbed Response')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array(),
    ));
    register_post_type('user_request', array(
        'labels' => array('name' => __('User Requests'), 'singular_name' => __('User Request')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array(),
    ));
    register_post_type('wp_block', array(
        'labels' => array('name' => _x('Blocks', 'post type general name'), 'singular_name' => _x('Block', 'post type singular name'), 'menu_name' => _x('Blocks', 'admin menu'), 'name_admin_bar' => _x('Block', 'add new on admin bar'), 'add_new' => _x('Add New', 'Block'), 'add_new_item' => __('Add New Block'), 'new_item' => __('New Block'), 'edit_item' => __('Edit Block'), 'view_item' => __('View Block'), 'all_items' => __('All Blocks'), 'search_items' => __('Search Blocks'), 'not_found' => __('No blocks found.'), 'not_found_in_trash' => __('No blocks found in Trash.'), 'filter_items_list' => __('Filter blocks list'), 'items_list_navigation' => __('Blocks list navigation'), 'items_list' => __('Blocks list'), 'item_published' => __('Block published.'), 'item_published_privately' => __('Block published privately.'), 'item_reverted_to_draft' => __('Block reverted to draft.'), 'item_scheduled' => __('Block scheduled.'), 'item_updated' => __('Block updated.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'show_ui' => true,
        'show_in_menu' => false,
        'rewrite' => false,
        'show_in_rest' => true,
        'rest_base' => 'blocks',
        'rest_controller_class' => 'WP_REST_Blocks_Controller',
        'capability_type' => 'block',
        'capabilities' => array(
            // You need to be able to edit posts, in order to read blocks in their raw form.
            'read' => 'edit_posts',
            // You need to be able to publish posts, in order to create blocks.
            'create_posts' => 'publish_posts',
            'edit_posts' => 'edit_posts',
            'edit_published_posts' => 'edit_published_posts',
            'delete_published_posts' => 'delete_published_posts',
            'edit_others_posts' => 'edit_others_posts',
            'delete_others_posts' => 'delete_others_posts',
        ),
        'map_meta_cap' => true,
        'supports' => array('title', 'editor'),
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array('label' => 'auto-draft', 'internal' => true, '_builtin' => true));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-pending', array(
        'label' => _x('Pending', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-confirmed', array(
        'label' => _x('Confirmed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Confirmed <span class="count">(%s)</span>', 'Confirmed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-failed', array(
        'label' => _x('Failed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
    register_post_status('request-completed', array(
        'label' => _x('Completed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Completed <span class="count">(%s)</span>', 'Completed <span class="count">(%s)</span>'),
        'exclude_from_search' => false,
    ));
}

WordPress Version: 5.0

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type Registration
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * See {@see 'init'}.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new from admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
        'show_in_rest' => true,
        'rest_base' => 'posts',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new from admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
        'show_in_rest' => true,
        'rest_base' => 'pages',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'add new media'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page'), 'attributes' => __('Attachment Attributes')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
        'show_in_rest' => true,
        'rest_base' => 'media',
        'rest_controller_class' => 'WP_REST_Attachments_Controller',
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
    ));
    register_post_type('custom_css', array(
        'labels' => array('name' => __('Custom CSS'), 'singular_name' => __('Custom CSS')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array('title', 'revisions'),
        'capabilities' => array('delete_posts' => 'edit_theme_options', 'delete_post' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_post' => 'edit_css', 'edit_posts' => 'edit_css', 'edit_others_posts' => 'edit_css', 'edit_published_posts' => 'edit_css', 'read_post' => 'read', 'read_private_posts' => 'read', 'publish_posts' => 'edit_theme_options'),
    ));
    register_post_type('customize_changeset', array(
        'labels' => array('name' => _x('Changesets', 'post type general name'), 'singular_name' => _x('Changeset', 'post type singular name'), 'menu_name' => _x('Changesets', 'admin menu'), 'name_admin_bar' => _x('Changeset', 'add new on admin bar'), 'add_new' => _x('Add New', 'Customize Changeset'), 'add_new_item' => __('Add New Changeset'), 'new_item' => __('New Changeset'), 'edit_item' => __('Edit Changeset'), 'view_item' => __('View Changeset'), 'all_items' => __('All Changesets'), 'search_items' => __('Search Changesets'), 'not_found' => __('No changesets found.'), 'not_found_in_trash' => __('No changesets found in Trash.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array('title', 'author'),
        'capability_type' => 'customize_changeset',
        'capabilities' => array('create_posts' => 'customize', 'delete_others_posts' => 'customize', 'delete_post' => 'customize', 'delete_posts' => 'customize', 'delete_private_posts' => 'customize', 'delete_published_posts' => 'customize', 'edit_others_posts' => 'customize', 'edit_post' => 'customize', 'edit_posts' => 'customize', 'edit_private_posts' => 'customize', 'edit_published_posts' => 'do_not_allow', 'publish_posts' => 'customize', 'read' => 'read', 'read_post' => 'customize', 'read_private_posts' => 'customize'),
    ));
    register_post_type('oembed_cache', array(
        'labels' => array('name' => __('oEmbed Responses'), 'singular_name' => __('oEmbed Response')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array(),
    ));
    register_post_type('user_request', array(
        'labels' => array('name' => __('User Requests'), 'singular_name' => __('User Request')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array(),
    ));
    register_post_type('wp_block', array(
        'labels' => array('name' => _x('Blocks', 'post type general name'), 'singular_name' => _x('Block', 'post type singular name'), 'menu_name' => _x('Blocks', 'admin menu'), 'name_admin_bar' => _x('Block', 'add new on admin bar'), 'add_new' => _x('Add New', 'Block'), 'add_new_item' => __('Add New Block'), 'new_item' => __('New Block'), 'edit_item' => __('Edit Block'), 'view_item' => __('View Block'), 'all_items' => __('All Blocks'), 'search_items' => __('Search Blocks'), 'not_found' => __('No blocks found.'), 'not_found_in_trash' => __('No blocks found in Trash.'), 'filter_items_list' => __('Filter blocks list'), 'items_list_navigation' => __('Blocks list navigation'), 'items_list' => __('Blocks list'), 'item_published' => __('Block published.'), 'item_published_privately' => __('Block published privately.'), 'item_reverted_to_draft' => __('Block reverted to draft.'), 'item_scheduled' => __('Block scheduled.'), 'item_updated' => __('Block updated.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'show_ui' => true,
        'show_in_menu' => false,
        'rewrite' => false,
        'show_in_rest' => true,
        'rest_base' => 'blocks',
        'rest_controller_class' => 'WP_REST_Blocks_Controller',
        'capability_type' => 'block',
        'capabilities' => array(
            // You need to be able to edit posts, in order to read blocks in their raw form.
            'read' => 'edit_posts',
            // You need to be able to publish posts, in order to create blocks.
            'create_posts' => 'publish_posts',
            'edit_published_posts' => 'edit_published_posts',
            'delete_published_posts' => 'delete_published_posts',
            'edit_others_posts' => 'edit_others_posts',
            'delete_others_posts' => 'delete_others_posts',
        ),
        'map_meta_cap' => true,
        'supports' => array('title', 'editor'),
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array('label' => 'auto-draft', 'internal' => true, '_builtin' => true));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-pending', array(
        'label' => _x('Pending', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-confirmed', array(
        'label' => _x('Confirmed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-failed', array(
        'label' => _x('Failed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-completed', array(
        'label' => _x('Completed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
}

WordPress Version: 9.6

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type Registration
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * See {@see 'init'}.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new from admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
        'show_in_rest' => true,
        'rest_base' => 'posts',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new from admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
        'show_in_rest' => true,
        'rest_base' => 'pages',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'add new media'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page'), 'attributes' => __('Attachment Attributes')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
        'show_in_rest' => true,
        'rest_base' => 'media',
        'rest_controller_class' => 'WP_REST_Attachments_Controller',
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
    ));
    register_post_type('custom_css', array(
        'labels' => array('name' => __('Custom CSS'), 'singular_name' => __('Custom CSS')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array('title', 'revisions'),
        'capabilities' => array('delete_posts' => 'edit_theme_options', 'delete_post' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_post' => 'edit_css', 'edit_posts' => 'edit_css', 'edit_others_posts' => 'edit_css', 'edit_published_posts' => 'edit_css', 'read_post' => 'read', 'read_private_posts' => 'read', 'publish_posts' => 'edit_theme_options'),
    ));
    register_post_type('customize_changeset', array(
        'labels' => array('name' => _x('Changesets', 'post type general name'), 'singular_name' => _x('Changeset', 'post type singular name'), 'menu_name' => _x('Changesets', 'admin menu'), 'name_admin_bar' => _x('Changeset', 'add new on admin bar'), 'add_new' => _x('Add New', 'Customize Changeset'), 'add_new_item' => __('Add New Changeset'), 'new_item' => __('New Changeset'), 'edit_item' => __('Edit Changeset'), 'view_item' => __('View Changeset'), 'all_items' => __('All Changesets'), 'search_items' => __('Search Changesets'), 'not_found' => __('No changesets found.'), 'not_found_in_trash' => __('No changesets found in Trash.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array('title', 'author'),
        'capability_type' => 'customize_changeset',
        'capabilities' => array('create_posts' => 'customize', 'delete_others_posts' => 'customize', 'delete_post' => 'customize', 'delete_posts' => 'customize', 'delete_private_posts' => 'customize', 'delete_published_posts' => 'customize', 'edit_others_posts' => 'customize', 'edit_post' => 'customize', 'edit_posts' => 'customize', 'edit_private_posts' => 'customize', 'edit_published_posts' => 'do_not_allow', 'publish_posts' => 'customize', 'read' => 'read', 'read_post' => 'customize', 'read_private_posts' => 'customize'),
    ));
    register_post_type('oembed_cache', array(
        'labels' => array('name' => __('oEmbed Responses'), 'singular_name' => __('oEmbed Response')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array(),
    ));
    register_post_type('user_request', array(
        'labels' => array('name' => __('User Requests'), 'singular_name' => __('User Request')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array(),
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array('label' => 'auto-draft', 'internal' => true, '_builtin' => true));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-pending', array(
        'label' => _x('Pending', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-confirmed', array(
        'label' => _x('Confirmed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-failed', array(
        'label' => _x('Failed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-completed', array(
        'label' => _x('Completed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
}

WordPress Version: 9.3

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type Registration
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * See {@see 'init'}.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new from admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
        'show_in_rest' => true,
        'rest_base' => 'posts',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new from admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
        'show_in_rest' => true,
        'rest_base' => 'pages',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'add new media'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page'), 'attributes' => __('Attachment Attributes')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
        'show_in_rest' => true,
        'rest_base' => 'media',
        'rest_controller_class' => 'WP_REST_Attachments_Controller',
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
    ));
    register_post_type('custom_css', array(
        'labels' => array('name' => __('Custom CSS'), 'singular_name' => __('Custom CSS')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array('title', 'revisions'),
        'capabilities' => array('delete_posts' => 'edit_theme_options', 'delete_post' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_post' => 'edit_css', 'edit_posts' => 'edit_css', 'edit_others_posts' => 'edit_css', 'edit_published_posts' => 'edit_css', 'read_post' => 'read', 'read_private_posts' => 'read', 'publish_posts' => 'edit_theme_options'),
    ));
    register_post_type('customize_changeset', array(
        'labels' => array('name' => _x('Changesets', 'post type general name'), 'singular_name' => _x('Changeset', 'post type singular name'), 'menu_name' => _x('Changesets', 'admin menu'), 'name_admin_bar' => _x('Changeset', 'add new on admin bar'), 'add_new' => _x('Add New', 'Customize Changeset'), 'add_new_item' => __('Add New Changeset'), 'new_item' => __('New Changeset'), 'edit_item' => __('Edit Changeset'), 'view_item' => __('View Changeset'), 'all_items' => __('All Changesets'), 'search_items' => __('Search Changesets'), 'not_found' => __('No changesets found.'), 'not_found_in_trash' => __('No changesets found in Trash.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array('title', 'author'),
        'capability_type' => 'customize_changeset',
        'capabilities' => array('create_posts' => 'customize', 'delete_others_posts' => 'customize', 'delete_post' => 'customize', 'delete_posts' => 'customize', 'delete_private_posts' => 'customize', 'delete_published_posts' => 'customize', 'edit_others_posts' => 'customize', 'edit_post' => 'customize', 'edit_posts' => 'customize', 'edit_private_posts' => 'customize', 'edit_published_posts' => 'do_not_allow', 'publish_posts' => 'customize', 'read' => 'read', 'read_post' => 'customize', 'read_private_posts' => 'customize'),
    ));
    register_post_type('oembed_cache', array(
        'labels' => array('name' => __('oEmbed Responses'), 'singular_name' => __('oEmbed Response')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array(),
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array('label' => 'auto-draft', 'internal' => true, '_builtin' => true));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
}

WordPress Version: .20

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type Registration
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * See {@see 'init'}.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new from admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
        'show_in_rest' => true,
        'rest_base' => 'posts',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new from admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
        'show_in_rest' => true,
        'rest_base' => 'pages',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'add new media'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page'), 'attributes' => __('Attachment Attributes')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
        'show_in_rest' => true,
        'rest_base' => 'media',
        'rest_controller_class' => 'WP_REST_Attachments_Controller',
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
    ));
    register_post_type('custom_css', array(
        'labels' => array('name' => __('Custom CSS'), 'singular_name' => __('Custom CSS')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array('title', 'revisions'),
        'capabilities' => array('delete_posts' => 'edit_theme_options', 'delete_post' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_post' => 'edit_css', 'edit_posts' => 'edit_css', 'edit_others_posts' => 'edit_css', 'edit_published_posts' => 'edit_css', 'read_post' => 'read', 'read_private_posts' => 'read', 'publish_posts' => 'edit_theme_options'),
    ));
    register_post_type('customize_changeset', array(
        'labels' => array('name' => _x('Changesets', 'post type general name'), 'singular_name' => _x('Changeset', 'post type singular name'), 'menu_name' => _x('Changesets', 'admin menu'), 'name_admin_bar' => _x('Changeset', 'add new on admin bar'), 'add_new' => _x('Add New', 'Customize Changeset'), 'add_new_item' => __('Add New Changeset'), 'new_item' => __('New Changeset'), 'edit_item' => __('Edit Changeset'), 'view_item' => __('View Changeset'), 'all_items' => __('All Changesets'), 'search_items' => __('Search Changesets'), 'not_found' => __('No changesets found.'), 'not_found_in_trash' => __('No changesets found in Trash.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array('title', 'author'),
        'capability_type' => 'customize_changeset',
        'capabilities' => array('create_posts' => 'customize', 'delete_others_posts' => 'customize', 'delete_post' => 'customize', 'delete_posts' => 'customize', 'delete_private_posts' => 'customize', 'delete_published_posts' => 'customize', 'edit_others_posts' => 'customize', 'edit_post' => 'customize', 'edit_posts' => 'customize', 'edit_private_posts' => 'customize', 'edit_published_posts' => 'do_not_allow', 'publish_posts' => 'customize', 'read' => 'read', 'read_post' => 'customize', 'read_private_posts' => 'customize'),
    ));
    register_post_type('oembed_cache', array(
        'labels' => array('name' => __('oEmbed Responses'), 'singular_name' => __('oEmbed Response')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array(),
    ));
    register_post_type('user_request', array(
        'labels' => array('name' => __('User Requests'), 'singular_name' => __('User Request')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array(),
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array('label' => 'auto-draft', 'internal' => true, '_builtin' => true));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-pending', array(
        'label' => _x('Pending', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-confirmed', array(
        'label' => _x('Confirmed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-failed', array(
        'label' => _x('Failed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-completed', array(
        'label' => _x('Completed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
}

WordPress Version: 9.2

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type Registration
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * See {@see 'init'}.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new from admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
        'show_in_rest' => true,
        'rest_base' => 'posts',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new from admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
        'show_in_rest' => true,
        'rest_base' => 'pages',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'add new media'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page'), 'attributes' => __('Attachment Attributes')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
        'show_in_rest' => true,
        'rest_base' => 'media',
        'rest_controller_class' => 'WP_REST_Attachments_Controller',
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
    ));
    register_post_type('custom_css', array(
        'labels' => array('name' => __('Custom CSS'), 'singular_name' => __('Custom CSS')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array('title', 'revisions'),
        'capabilities' => array('delete_posts' => 'edit_theme_options', 'delete_post' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_post' => 'edit_css', 'edit_posts' => 'edit_css', 'edit_others_posts' => 'edit_css', 'edit_published_posts' => 'edit_css', 'read_post' => 'read', 'read_private_posts' => 'read', 'publish_posts' => 'edit_theme_options'),
    ));
    register_post_type('customize_changeset', array(
        'labels' => array('name' => _x('Changesets', 'post type general name'), 'singular_name' => _x('Changeset', 'post type singular name'), 'menu_name' => _x('Changesets', 'admin menu'), 'name_admin_bar' => _x('Changeset', 'add new on admin bar'), 'add_new' => _x('Add New', 'Customize Changeset'), 'add_new_item' => __('Add New Changeset'), 'new_item' => __('New Changeset'), 'edit_item' => __('Edit Changeset'), 'view_item' => __('View Changeset'), 'all_items' => __('All Changesets'), 'search_items' => __('Search Changesets'), 'not_found' => __('No changesets found.'), 'not_found_in_trash' => __('No changesets found in Trash.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array('title', 'author'),
        'capability_type' => 'customize_changeset',
        'capabilities' => array('create_posts' => 'customize', 'delete_others_posts' => 'customize', 'delete_post' => 'customize', 'delete_posts' => 'customize', 'delete_private_posts' => 'customize', 'delete_published_posts' => 'customize', 'edit_others_posts' => 'customize', 'edit_post' => 'customize', 'edit_posts' => 'customize', 'edit_private_posts' => 'customize', 'edit_published_posts' => 'do_not_allow', 'publish_posts' => 'customize', 'read' => 'read', 'read_post' => 'customize', 'read_private_posts' => 'customize'),
    ));
    register_post_type('oembed_cache', array(
        'labels' => array('name' => __('oEmbed Responses'), 'singular_name' => __('oEmbed Response')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array(),
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array('label' => 'auto-draft', 'internal' => true, '_builtin' => true));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
}

WordPress Version: .10

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type Registration
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * See {@see 'init'}.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new from admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
        'show_in_rest' => true,
        'rest_base' => 'posts',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new from admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
        'show_in_rest' => true,
        'rest_base' => 'pages',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'add new media'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page'), 'attributes' => __('Attachment Attributes')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
        'show_in_rest' => true,
        'rest_base' => 'media',
        'rest_controller_class' => 'WP_REST_Attachments_Controller',
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
    ));
    register_post_type('custom_css', array(
        'labels' => array('name' => __('Custom CSS'), 'singular_name' => __('Custom CSS')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array('title', 'revisions'),
        'capabilities' => array('delete_posts' => 'edit_theme_options', 'delete_post' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_post' => 'edit_css', 'edit_posts' => 'edit_css', 'edit_others_posts' => 'edit_css', 'edit_published_posts' => 'edit_css', 'read_post' => 'read', 'read_private_posts' => 'read', 'publish_posts' => 'edit_theme_options'),
    ));
    register_post_type('customize_changeset', array(
        'labels' => array('name' => _x('Changesets', 'post type general name'), 'singular_name' => _x('Changeset', 'post type singular name'), 'menu_name' => _x('Changesets', 'admin menu'), 'name_admin_bar' => _x('Changeset', 'add new on admin bar'), 'add_new' => _x('Add New', 'Customize Changeset'), 'add_new_item' => __('Add New Changeset'), 'new_item' => __('New Changeset'), 'edit_item' => __('Edit Changeset'), 'view_item' => __('View Changeset'), 'all_items' => __('All Changesets'), 'search_items' => __('Search Changesets'), 'not_found' => __('No changesets found.'), 'not_found_in_trash' => __('No changesets found in Trash.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array('title', 'author'),
        'capability_type' => 'customize_changeset',
        'capabilities' => array('create_posts' => 'customize', 'delete_others_posts' => 'customize', 'delete_post' => 'customize', 'delete_posts' => 'customize', 'delete_private_posts' => 'customize', 'delete_published_posts' => 'customize', 'edit_others_posts' => 'customize', 'edit_post' => 'customize', 'edit_posts' => 'customize', 'edit_private_posts' => 'customize', 'edit_published_posts' => 'do_not_allow', 'publish_posts' => 'customize', 'read' => 'read', 'read_post' => 'customize', 'read_private_posts' => 'customize'),
    ));
    register_post_type('oembed_cache', array(
        'labels' => array('name' => __('oEmbed Responses'), 'singular_name' => __('oEmbed Response')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array(),
    ));
    register_post_type('user_request', array(
        'labels' => array('name' => __('User Requests'), 'singular_name' => __('User Request')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array(),
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array('label' => 'auto-draft', 'internal' => true, '_builtin' => true));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-pending', array(
        'label' => _x('Pending', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-confirmed', array(
        'label' => _x('Confirmed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-failed', array(
        'label' => _x('Failed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
    register_post_status('request-completed', array(
        'label' => _x('Completed', 'request status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
}

WordPress Version: 4.9

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type Registration
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * See {@see 'init'}.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new from admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
        'show_in_rest' => true,
        'rest_base' => 'posts',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new from admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
        'show_in_rest' => true,
        'rest_base' => 'pages',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'add new media'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page'), 'attributes' => __('Attachment Attributes')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
        'show_in_rest' => true,
        'rest_base' => 'media',
        'rest_controller_class' => 'WP_REST_Attachments_Controller',
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
    ));
    register_post_type('custom_css', array(
        'labels' => array('name' => __('Custom CSS'), 'singular_name' => __('Custom CSS')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array('title', 'revisions'),
        'capabilities' => array('delete_posts' => 'edit_theme_options', 'delete_post' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_post' => 'edit_css', 'edit_posts' => 'edit_css', 'edit_others_posts' => 'edit_css', 'edit_published_posts' => 'edit_css', 'read_post' => 'read', 'read_private_posts' => 'read', 'publish_posts' => 'edit_theme_options'),
    ));
    register_post_type('customize_changeset', array(
        'labels' => array('name' => _x('Changesets', 'post type general name'), 'singular_name' => _x('Changeset', 'post type singular name'), 'menu_name' => _x('Changesets', 'admin menu'), 'name_admin_bar' => _x('Changeset', 'add new on admin bar'), 'add_new' => _x('Add New', 'Customize Changeset'), 'add_new_item' => __('Add New Changeset'), 'new_item' => __('New Changeset'), 'edit_item' => __('Edit Changeset'), 'view_item' => __('View Changeset'), 'all_items' => __('All Changesets'), 'search_items' => __('Search Changesets'), 'not_found' => __('No changesets found.'), 'not_found_in_trash' => __('No changesets found in Trash.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array('title', 'author'),
        'capability_type' => 'customize_changeset',
        'capabilities' => array('create_posts' => 'customize', 'delete_others_posts' => 'customize', 'delete_post' => 'customize', 'delete_posts' => 'customize', 'delete_private_posts' => 'customize', 'delete_published_posts' => 'customize', 'edit_others_posts' => 'customize', 'edit_post' => 'customize', 'edit_posts' => 'customize', 'edit_private_posts' => 'customize', 'edit_published_posts' => 'do_not_allow', 'publish_posts' => 'customize', 'read' => 'read', 'read_post' => 'customize', 'read_private_posts' => 'customize'),
    ));
    register_post_type('oembed_cache', array(
        'labels' => array('name' => __('oEmbed Responses'), 'singular_name' => __('oEmbed Response')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array(),
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array('label' => 'auto-draft', 'internal' => true, '_builtin' => true));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
}

WordPress Version: 4.7

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type Registration
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * See {@see 'init'}.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new from admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
        'show_in_rest' => true,
        'rest_base' => 'posts',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new from admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
        'show_in_rest' => true,
        'rest_base' => 'pages',
        'rest_controller_class' => 'WP_REST_Posts_Controller',
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'add new media'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page'), 'attributes' => __('Attachment Attributes')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
        'show_in_rest' => true,
        'rest_base' => 'media',
        'rest_controller_class' => 'WP_REST_Attachments_Controller',
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
    ));
    register_post_type('custom_css', array(
        'labels' => array('name' => __('Custom CSS'), 'singular_name' => __('Custom CSS')),
        'public' => false,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => false,
        'can_export' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'supports' => array('title', 'revisions'),
        'capabilities' => array('delete_posts' => 'edit_theme_options', 'delete_post' => 'edit_theme_options', 'delete_published_posts' => 'edit_theme_options', 'delete_private_posts' => 'edit_theme_options', 'delete_others_posts' => 'edit_theme_options', 'edit_post' => 'edit_css', 'edit_posts' => 'edit_css', 'edit_others_posts' => 'edit_css', 'edit_published_posts' => 'edit_css', 'read_post' => 'read', 'read_private_posts' => 'read', 'publish_posts' => 'edit_theme_options'),
    ));
    register_post_type('customize_changeset', array(
        'labels' => array('name' => _x('Changesets', 'post type general name'), 'singular_name' => _x('Changeset', 'post type singular name'), 'menu_name' => _x('Changesets', 'admin menu'), 'name_admin_bar' => _x('Changeset', 'add new on admin bar'), 'add_new' => _x('Add New', 'Customize Changeset'), 'add_new_item' => __('Add New Changeset'), 'new_item' => __('New Changeset'), 'edit_item' => __('Edit Changeset'), 'view_item' => __('View Changeset'), 'all_items' => __('All Changesets'), 'search_items' => __('Search Changesets'), 'not_found' => __('No changesets found.'), 'not_found_in_trash' => __('No changesets found in Trash.')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => false,
        'supports' => array('title', 'author'),
        'capability_type' => 'customize_changeset',
        'capabilities' => array('create_posts' => 'customize', 'delete_others_posts' => 'customize', 'delete_post' => 'customize', 'delete_posts' => 'customize', 'delete_private_posts' => 'customize', 'delete_published_posts' => 'customize', 'edit_others_posts' => 'customize', 'edit_post' => 'customize', 'edit_posts' => 'customize', 'edit_private_posts' => 'customize', 'edit_published_posts' => 'do_not_allow', 'publish_posts' => 'customize', 'read' => 'read', 'read_post' => 'customize', 'read_private_posts' => 'customize'),
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array('label' => 'auto-draft', 'internal' => true, '_builtin' => true));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
}

WordPress Version: 4.6

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type Registration
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * See {@see 'init'}.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new on admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new on admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'add new media'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array('label' => 'auto-draft', 'internal' => true, '_builtin' => true));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
}

WordPress Version: 4.5

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type Registration
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new on admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new on admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'add new media'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post status'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post status'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post status'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post status'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array('label' => 'auto-draft', 'internal' => true, '_builtin' => true));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
}

WordPress Version: 4.4

/**
 * Core Post API
 *
 * @package WordPress
 * @subpackage Post
 */
//
// Post Type Registration
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new on admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'menu_position' => 5,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new on admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'menu_position' => 20,
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'add new media'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array('label' => 'auto-draft', 'internal' => true, '_builtin' => true));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
}

WordPress Version: 3.9

/**
 * Post functions and post utility function.
 *
 * @package WordPress
 * @subpackage Post
 * @since 1.5.0
 */
//
// Post Type Registration
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new on admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new on admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'add new media'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
    ));
    add_post_type_support('attachment:audio', 'thumbnail');
    add_post_type_support('attachment:video', 'thumbnail');
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array('label' => 'auto-draft', 'internal' => true, '_builtin' => true));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
}

WordPress Version: 3.7

/**
 * Post functions and post utility function.
 *
 * @package WordPress
 * @subpackage Post
 * @since 1.5.0
 */
//
// Post Type Registration
//
/**
 * Creates the initial post types when 'init' action is fired.
 *
 * @since 2.9.0
 */
function create_initial_post_types()
{
    register_post_type('post', array(
        'labels' => array('name_admin_bar' => _x('Post', 'add new on admin bar')),
        'public' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'post-formats'),
    ));
    register_post_type('page', array(
        'labels' => array('name_admin_bar' => _x('Page', 'add new on admin bar')),
        'public' => true,
        'publicly_queryable' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'page',
        'map_meta_cap' => true,
        'hierarchical' => true,
        'rewrite' => false,
        'query_var' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'editor', 'author', 'thumbnail', 'page-attributes', 'custom-fields', 'comments', 'revisions'),
    ));
    register_post_type('attachment', array(
        'labels' => array('name' => _x('Media', 'post type general name'), 'name_admin_bar' => _x('Media', 'add new from admin bar'), 'add_new' => _x('Add New', 'add new media'), 'edit_item' => __('Edit Media'), 'view_item' => __('View Attachment Page')),
        'public' => true,
        'show_ui' => true,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'post.php?post=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'capabilities' => array('create_posts' => 'upload_files'),
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'show_in_nav_menus' => false,
        'delete_with_user' => true,
        'supports' => array('title', 'author', 'comments'),
    ));
    register_post_type('revision', array(
        'labels' => array('name' => __('Revisions'), 'singular_name' => __('Revision')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        '_edit_link' => 'revision.php?revision=%d',
        /* internal use only. don't use this when registering your own post type. */
        'capability_type' => 'post',
        'map_meta_cap' => true,
        'hierarchical' => false,
        'rewrite' => false,
        'query_var' => false,
        'can_export' => false,
        'delete_with_user' => true,
        'supports' => array('author'),
    ));
    register_post_type('nav_menu_item', array(
        'labels' => array('name' => __('Navigation Menu Items'), 'singular_name' => __('Navigation Menu Item')),
        'public' => false,
        '_builtin' => true,
        /* internal use only. don't use this when registering your own post type. */
        'hierarchical' => false,
        'rewrite' => false,
        'delete_with_user' => false,
        'query_var' => false,
    ));
    register_post_status('publish', array(
        'label' => _x('Published', 'post'),
        'public' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Published <span class="count">(%s)</span>', 'Published <span class="count">(%s)</span>'),
    ));
    register_post_status('future', array(
        'label' => _x('Scheduled', 'post'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Scheduled <span class="count">(%s)</span>', 'Scheduled <span class="count">(%s)</span>'),
    ));
    register_post_status('draft', array(
        'label' => _x('Draft', 'post'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Draft <span class="count">(%s)</span>', 'Drafts <span class="count">(%s)</span>'),
    ));
    register_post_status('pending', array(
        'label' => _x('Pending', 'post'),
        'protected' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Pending <span class="count">(%s)</span>', 'Pending <span class="count">(%s)</span>'),
    ));
    register_post_status('private', array(
        'label' => _x('Private', 'post'),
        'private' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Private <span class="count">(%s)</span>', 'Private <span class="count">(%s)</span>'),
    ));
    register_post_status('trash', array(
        'label' => _x('Trash', 'post'),
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'label_count' => _n_noop('Trash <span class="count">(%s)</span>', 'Trash <span class="count">(%s)</span>'),
        'show_in_admin_status_list' => true,
    ));
    register_post_status('auto-draft', array('label' => 'auto-draft', 'internal' => true, '_builtin' => true));
    register_post_status('inherit', array(
        'label' => 'inherit',
        'internal' => true,
        '_builtin' => true,
        /* internal use only. */
        'exclude_from_search' => false,
    ));
}