Languages: English • Italiano • 日本語 (Add your language)
Retrieves an object which describes any registered post type (i.e. built-in types like 'post' and 'page', or any user-created custom post type).
<?php get_post_type_object( $post_type ); ?>
Nothing on failure (e.g. can check for null).
$obj = get_post_type_object( 'post' ); echo $obj->labels->singular_name;
Technically, this is the same as
global $wp_post_types; $obj = $wp_post_types['post']; echo $obj->labels->singular_name;
print_r( $obj ) might return something like this:
stdClass Object ( [labels] => stdClass Object ( [name] => Posts [singular_name] => Post [add_new] => Add New [add_new_item] => Add New Post [edit_item] => Edit Post [new_item] => New Post [view_item] => View Post [search_items] => Search Posts [not_found] => No posts found [not_found_in_trash] => No posts found in Trash [parent_item_colon] => ) [description] => [publicly_queryable] => 1 [exclude_from_search] => [_builtin] => 1 [_edit_link] => post.php?post=%d [capability_type] => post [hierarchical] => [public] => 1 [rewrite] => [query_var] => [register_meta_box_cb] => [taxonomies] => Array ( ) [show_ui] => 1 [menu_position] => [menu_icon] => [permalink_epmask] => 1 [can_export] => 1 [show_in_nav_menus] => 1 [name] => post [cap] => stdClass Object ( [edit_post] => edit_post [edit_posts] => edit_posts [edit_others_posts] => edit_others_posts [publish_posts] => publish_posts [read_post] => read_post [read_private_posts] => read_private_posts [delete_post] => delete_post ) [label] => Posts )
Assuming we have the post type 'certification', we could do this:
$obj = get_post_type_object( 'certification' );
print_r( $obj ) might return something like this:
stdClass Object ( [labels] => stdClass Object ( [name] => Certification [singular_name] => Certification [add_new] => Add New [add_new_item] => Add New Certification [edit_item] => Edit Certification [new_item] => New Page [view_item] => View Certification [search_items] => Search Certification [not_found] => Not found [not_found_in_trash] => Not found in Trash [parent_item_colon] => Parent Certification: [all_items] => All Certifications [menu_name] => Certifications [update_item] => Update Certification [name_admin_bar] => Certification ) [description] => Certifications [public] => 1 [hierarchical] => 1 [exclude_from_search] => [publicly_queryable] => 1 [show_ui] => 1 [show_in_menu] => [show_in_nav_menus] => 1 [show_in_admin_bar] => 1 [menu_position] => 5 [menu_icon] => dashicons-welcome-widgets-menus [capability_type] => post [map_meta_cap] => 1 [register_meta_box_cb] => [taxonomies] => Array ( [0] => objective ) [has_archive] => 1 [rewrite] => Array ( [slug] => certification [with_front] => 1 [pages] => 1 [feeds] => 1 [ep_mask] => 1 ) [query_var] => certification [can_export] => 1 [delete_with_user] => [_builtin] => [_edit_link] => post.php?post=%d [label] => Certification [name] => certification [cap] => stdClass Object ( [edit_post] => edit_post [read_post] => read_post [delete_post] => delete_post [edit_posts] => edit_posts [edit_others_posts] => edit_others_posts [publish_posts] => publish_posts [read_private_posts] => read_private_posts [read] => read [delete_posts] => delete_posts [delete_private_posts] => delete_private_posts [delete_published_posts] => delete_published_posts [delete_others_posts] => delete_others_posts [edit_private_posts] => edit_private_posts [edit_published_posts] => edit_published_posts [create_posts] => edit_posts ) )
Note 1: that the object's attribute names are slightly different than the arguments expected for the register_post_type() function.
Note 2: to get the list of `supports` field, possible solution could be to check :
$GLOBALS['_wp_post_type_features']
get_post_type_object() is located in wp-includes/post.php
.
Post Types: register_post_type(), add_post_type_support(), remove_post_type_support(), post_type_supports(), post_type_exists(), set_post_type(), get_post_type(), get_post_types(), get_post_type_object(), get_post_type_capabilities(), get_post_type_labels(), is_post_type_hierarchical(), is_post_type_archive(), post_type_archive_title()