get_post_type_object()
Получает объект (данные) указанного типа записи: post, page, attachment или новый тип записи. Объект содержит все параметры (настройки) типа записи.
Основа для: acf_get_object_type(), get_the_post_type_description(), post_type_exists(), get_post_type_archive_link()
1 раз — 0.000068 сек (очень быстро) | 50000 раз — 2.36 сек (быстро) | PHP 7.0.5, WP 4.5.2
Хуков нет.
Возвращает
WP_Post_Type|null
. Объект со всеми данными о типе записи. С версии 4.6. возвращает экземпляр объекта WP_Post_Type.
Использование
get_post_type_object( $post_type );
- $post_type(строка) (обязательный)
- Название зарегистрированного типа записи.
Примеры
#1 Получим название произвольного типа поста
Для вывода на экран, получим локализованное название типа поста:
$obj = get_post_type_object( 'post' ); echo $obj->labels->singular_name;
Тоже самое можно записать так:
global $wp_post_types; $obj = $wp_post_types['post']; echo $obj->labels->singular_name;
#2 Как выглядит объект
Для наглядности: объект базового типа поста "post" выглядит так:
$obj = get_post_type_object( 'post' ); /* $obj будет содержать: 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] => [public] => 1 [hierarchical] => [exclude_from_search] => [publicly_queryable] => 1 [show_ui] => 1 [show_in_menu] => 1 [show_in_nav_menus] => 1 [show_in_admin_bar] => 1 [menu_position] => [menu_icon] => [capability_type] => post [map_meta_cap] => 1 [register_meta_box_cb] => [taxonomies] => Array ( ) [has_archive] => [rewrite] => [query_var] => [can_export] => 1 [delete_with_user] => 1 [_builtin] => 1 [_edit_link] => post.php?post=%d [name] => post [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 ) [label] => Записи ) */
Заметки
- Global. Массив. $wp_post_types List of post types.
- Смотрите: register_post_type()
Список изменений
С версии 3.0.0 | Введена. |
С версии 4.6.0 | Object returned is now an instance of WP_Post_Type. |
Код get_post_type_object() get post type object WP 6.3.1
function get_post_type_object( $post_type ) { global $wp_post_types; if ( ! is_scalar( $post_type ) || empty( $wp_post_types[ $post_type ] ) ) { return null; } return $wp_post_types[ $post_type ]; }