Возвращает объект типа записи WP_Post_Type, название которого было передано в параметрах. Если в параметрах был передан незарегистрированный/несуществующий тип записи, функция вернёт null
.
get_post_type_object( $post_type )
Параметры
- $post_type
- (строка) Тип записи, информацию о котором нужно получить.
Объект WP_Post_Type
Этот объект содержит не много не мало, а по сути все значения параметров, которые указывались при регистрации типа записи.
Вот так выглядит объект при его распечатке функцией print_r()
, в примере тип записи Страницы.
stdClass Object ( [labels] => stdClass Object ( [name] => Страницы [singular_name] => Страница [add_new] => Добавить новую [add_new_item] => Добавить страницу [edit_item] => Редактировать страницу [new_item] => Новая страница [view_item] => Просмотреть страницу [search_items] => Поиск страниц [not_found] => Страниц не найдено. [not_found_in_trash] => Страниц в корзине не найдено. [parent_item_colon] => Родительская страница: [all_items] => Все страницы [menu_name] => Страницы [name_admin_bar] => Страницу ) [description] => [publicly_queryable] => [exclude_from_search] => [capability_type] => page [map_meta_cap] => 1 [_builtin] => 1 [_edit_link] => post.php?post=%d [hierarchical] => 1 [public] => 1 [rewrite] => [has_archive] => [query_var] => [register_meta_box_cb] => [taxonomies] => Array() [show_ui] => 1 [menu_position] => [menu_icon] => [can_export] => 1 [show_in_nav_menus] => 1 [show_in_menu] => 1 [show_in_admin_bar] => 1 [delete_with_user] => 1 [name] => page [cap] => stdClass Object ( [edit_post] => edit_page [read_post] => read_page [delete_post] => delete_page [edit_posts] => edit_pages [edit_others_posts] => edit_others_pages [publish_posts] => publish_pages [read_private_posts] => read_private_pages [read] => read [delete_posts] => delete_pages [delete_private_posts] => delete_private_pages [delete_published_posts] => delete_published_pages [delete_others_posts] => delete_others_pages [edit_private_posts] => edit_private_pages [edit_published_posts] => edit_published_pages [create_posts] => edit_pages ) [label] => Страницы )
Примеры
Сначала может показаться, что где вообще может понадобится этот объект. Что нам с ним делать по факту?
Ну я как минимум несколько раз встречал примеры реального кода, где из объекта WP_Post_Type подтягивались значения $labels
.
На примере тех же Страниц:
$page_type_object = get_post_type_object( 'page' ); echo $page_type_object->labels->singular_name; // Страница
Также мы можем проверить, является ли тип записи древовидным.
$page_type_object = get_post_type_object( 'page' ); if( $page_type_object->hierarchical ) { echo 'Да!'; }
Но хотя возможно для этой цели вы захотите использовать функцию is_post_type_hierarchical().