WordPress not showing page attributes on edit page?

Things to check if WordPress is not showing page attributes on custom post types.

I want to tell you about a problem i had, which absorbed me some hours because i couldn’t identify the problem. I had registered a custom post type in WordPress and it was not showing me the Page attribute fields of my Post Type.

WordPress Page attributes

And i was so pissed because i coud not believe that a simple Metabox in WordPress could waist my time. I have searched in Googe but most of the people were saying that i had to check only two variables:

$Args Array => supports => page-attributes
$Args Array => capability_type => page

But none of this this values were set wrong. After searching a lot in the code, i have realized that a lack of an other variable was causing the metabox i was searching for.

It was the attributes key of the Labels Array. Please notice that you have to check also the attributes key of the Labels array. Maybe you can understand me better if i give you an examle snippet of register_post_type()


// Register Custom Post Type
function custom_post_type() {
$labels = array( 'name'                  => _x( 'Post Types', 'Post Type General Name', 'text_domain' ), 'singular_name'         => _x( 'Post Type', 'Post Type Singular Name', 'text_domain' ), 'menu_name'             => __( 'Post Types', 'text_domain' ), 'name_admin_bar'        => __( 'Post Type', 'text_domain' ), 'archives'              => __( 'Item Archives', 'text_domain' ), 'attributes'            => __( 'Item Attributes', 'text_domain' ), 'parent_item_colon'     => __( 'Parent Item:', 'text_domain' ), 'all_items'             => __( 'All Items', 'text_domain' ), 'add_new_item'          => __( 'Add New Item', 'text_domain' ), 'add_new'               => __( 'Add New', 'text_domain' ), 'new_item'              => __( 'New Item', 'text_domain' ), 'edit_item'             => __( 'Edit Item', 'text_domain' ), 'update_item'           => __( 'Update Item', 'text_domain' ), 'view_item'             => __( 'View Item', 'text_domain' ), 'view_items'            => __( 'View Items', 'text_domain' ), 'search_items'          => __( 'Search Item', 'text_domain' ), 'not_found'             => __( 'Not found', 'text_domain' ), 'not_found_in_trash'    => __( 'Not found in Trash', 'text_domain' ), 'featured_image'        => __( 'Featured Image', 'text_domain' ), 'set_featured_image'    => __( 'Set featured image', 'text_domain' ), 'remove_featured_image' => __( 'Remove featured image', 'text_domain' ), 'use_featured_image'    => __( 'Use as featured image', 'text_domain' ), 'insert_into_item'      => __( 'Insert into item', 'text_domain' ), 'uploaded_to_this_item' => __( 'Uploaded to this item', 'text_domain' ), 'items_list'            => __( 'Items list', 'text_domain' ), 'items_list_navigation' => __( 'Items list navigation', 'text_domain' ), 'filter_items_list'     => __( 'Filter items list', 'text_domain' ), ); $args = array( 'label'                 => __( 'Post Type', 'text_domain' ), 'description'           => __( 'Post Type Description', 'text_domain' ), 'labels'                => $labels, 'supports'              => array('page-attributes' ), 'taxonomies'            => array( 'category', 'post_tag' ), 'hierarchical'          => false, 'public'                => true, 'show_ui'               => true, 'show_in_menu'          => true, 'menu_position'         => 5, 'show_in_admin_bar'     => true, 'show_in_nav_menus'     => true, 'can_export'            => true, 'has_archive'           => true, 'exclude_from_search'   => false, 'publicly_queryable'    => true, 'capability_type'       => 'page', ); register_post_type( 'post_type', $args );
} add_action( 'init', 'custom_post_type', 0 );
Example Post type registration