get_post_type_object() WP 3.0.0
Получает объект (данные) указанного типа записи: post
, page
, attachment
или новый тип записи
. Объект содержит все параметры (настройки) типа записи.
Является основой для:
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] => Записи ) */
А как вывести название категории созданной в произвольных типах записей?
так как код для такой категории не работает. Заранее благодарен!
Спасибо, помогло! Можете еще подсказать как вывести имя поста созданной в произвольных типах записей и как вывести произвольное поле по id поста, который создан в произвольных типах записей, что то типа функции
<?php echo (get_post_meta(id, 'my_pole', true)); ?>
Для произвольных типов все работает также как для Постов: get_post_meta(), get_post() и т.д. - нет разницы произвольный это тип или обычный пост... Отличаются только ID записи...
Понимаю, но произвольные поля я создавал через плагин который говорит что нужное поле нужно выводить так
<?php types_render_field("my-number", array(); ?>
и для одиночной записи это работает, но мне нужно вывести на главной странице сайта значение поля из определенной записи и код<?php echo (get_post_meta(id, 'my_pole', true)); ?>
не работает.Такие плагины обычно добавляют к названию метаполе префикс. Скорее всего поле 'my_pole' неправильное, убедись что название метаполя правильно вписываешь... При редактировании записи, посмотри как точно метаполе называется...
Спасибо за советы! Да, действительно, почитав документацию к плагину (было сложно так как с английским плоховато, и гугл не корректно переводит) выяснилось что к названию метаполя нужно было добавить особый префикс, после чего все заработало! Вывод: учить английский и читать документацию более внимательней!