Функция get_post_types() в WordPress предназначена для получения данных о зарегистрированных типах записей. Вместо извлечения самих записей, она возвращает информацию о типах записей, зарегистрированных в системе. Это позволяет фильтровать и получать данные о типах записей на основе различных критериев.
get_post_types( array|string $args = array(), string $output = ‘names’, string $operator = ‘and’ ): string[]|WP_Post_Type[]
Аргументы
Функция get_post_types() принимает следующие параметры:
$args(массив или строка, необязательный):'public': Если установлено вtrue, возвращает только публичные типы записей.'publicly_queryable': Возвращает типы записей, которые можно запросить через WP_Query.'show_ui': Возвращает типы записей, для которых имеется пользовательский интерфейс в админ-панели.'show_in_nav_menus': Возвращает типы записей, которые можно добавить в меню навигации.'show_in_rest': Возвращает типы записей, доступные через REST API.'exclude_from_search': Исключает типы записей из результатов поиска.'name': Фильтрует по конкретному имени типа записи.
$output(строка, необязательный):'names': Возвращает массив имен типов записей (по умолчанию).'objects': Возвращает массив объектов типов записей с дополнительной информацией.
$operator(строка, необязательный):'and': Возвращает типы записей, которые соответствуют всем заданным критериям (по умолчанию).'or': Возвращает типы записей, которые соответствуют хотя бы одному из заданных критериев.
Возвращаемое значение:
Массив строк с именами типов записей или массив объектов, содержащих данные о типах записей. Результат может быть настроен в зависимости от параметра $output.
Пример 1: Получение списка всех зарегистрированных типов записей
Этот пример выводит имена всех типов записей, зарегистрированных в WordPress:
// Получить список всех зарегистрированных типов записей
$post_types = get_post_types();
foreach ($post_types as $post_type) {
echo $post_type . "\n";
}
Пример 2: Получение типов записей с пользовательским интерфейсом
Если нужно получить только те типы записей, которые имеют пользовательский интерфейс в админ-панели:
// Получить типы записей, которые имеют пользовательский интерфейс
$args = array('show_ui' => true);
$post_types = get_post_types($args);
print_r($post_types);
Пример 3: Получение всех публичных пользовательских типов записей
Этот пример получает только публичные пользовательские типы записей, исключая встроенные типы:
// Получить все публичные пользовательские типы записей
$args = array(
'public' => true,
'_builtin' => false
);
$output = 'names'; // Можно выбрать 'names' или 'objects'
$operator = 'and'; // Можно выбрать 'and' или 'or'
$post_types = get_post_types($args, $output, $operator);
foreach ($post_types as $post_type) {
echo '<p>' . $post_type . '</p>';
}
Пример 4: Получение типа записи по названию
Если нужно получить данные типа записи с конкретным названием:
// Получить тип записи с названием 'property'
$post_types = get_post_types(array('name' => 'property'), 'objects');
foreach ($post_types as $post_type) {
echo '<p>' . $post_type->name . '</p>';
}
Пример 5: Получение типов записей, доступных через REST API
Этот пример показывает, как получить типы записей, которые доступны через REST API:
// Получить типы записей, доступные через REST API
$rest_ptypes = get_post_types(array('show_in_rest' => true), 'names');
print_r($rest_ptypes);
Подробное описание возвращаемого значения
Функция get_post_types() возвращает:
- Массив строк: Имена зарегистрированных типов записей, если параметр
$outputустановлен в'names'. - Массив объектов: Объекты типов записей с полной информацией о каждом типе, если параметр
$outputустановлен в'objects'.
Объекты типов записей содержат следующие данные:
name: Имя типа записи.label: Человеко-читаемое название типа записи.public: Определяет, является ли тип записи публичным.publicly_queryable: Определяет, можно ли запросить этот тип записи.show_ui: Определяет, отображается ли пользовательский интерфейс для этого типа записи.show_in_nav_menus: Определяет, можно ли добавить этот тип записи в меню навигации.show_in_rest: Определяет, доступен ли тип записи через REST API._builtin: Логический параметр, указывающий, является ли тип записи встроенным в WordPress или созданным пользователем.
Заключение
Функция get_post_types() предоставляет гибкие возможности для работы с типами записей в WordPress. С её помощью можно легко получать информацию о зарегистрированных типах записей, фильтровать их по различным критериям и настраивать вывод данных в зависимости от потребностей.