get_post_type_object() — возвращает объект типа поста

Возвращает объект типа записи 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().

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Пишите, если нужна помощь с сайтом или разработка с нуля.

Чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или войдите.