Функция GET_POST_TYPE_OBJECT() в WordPress: описание, примеры использования, структура объекта

# Функция GET_POST_TYPE_OBJECT() в WordPress

Функция get_post_type_object() используется для получения объекта типа записи по его имени. Это полезный инструмент для работы с различными типами записей в WordPress.

## Описание функции

### Возвращаемое значение
Функция возвращает объект WP_Post_Type, если он существует, или null, если нет.

### Синтаксис
```php
get_post_type_object( $post_type );

Параметры:

  • $post_type (строка) — название зарегистрированного типа записи (обязательный параметр).

Пример использования

Получение названия пользовательского типа записи

Чтобы получить локализованное название типа записи, вы можете использовать следующий код:

$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; // Выведет "Пост"

Структура объекта

Вот пример того, как может выглядеть объект базового типа записи "пост":

$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] => Посты
)
*/

Обратите внимание, что имена атрибутов объекта немного отличаются от аргументов, ожидаемых в функции register_post_type().

Примечания

  • Глобальная переменная: $wp_post_types — это массив типов записей, зарегистрированных в WordPress.
  • Чтобы получить дополнительную информацию, ознакомьтесь с функцией register_post_type().

Изменения

  • В версии 3.0.0 функция была введена.
  • Начиная с версии 4.6.0, возвращаемый объект теперь является экземпляром WP_Post_Type.

Связанные функции

  • add_post_type_support()
  • get_post_type()
  • get_post_types()
  • is_post_type_hierarchical()
  • is_post_type_viewable()
  • post_type_exists()
  • post_type_supports()
  • register_post_type()
  • remove_post_type_support()
  • set_post_type()
  • unregister_post_type()
  • WP_Post_Type()
  • get_post_permalink()
  • get_post_type_archive_link()
  • get_the_post_type_description()
  • is_post_type_archive()
  • post_type_archive_title()

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *