Функция 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. С её помощью можно легко получать информацию о зарегистрированных типах записей, фильтровать их по различным критериям и настраивать вывод данных в зависимости от потребностей.