Функция get_object_taxonomies()
используется для получения списка таксономий, которые зарегистрированы для указанного типа записи (например, post
) или объекта записи. Она может возвращать как имена таксономий, так и объекты таксономий.
get_object_taxonomies( string|string[]|WP_Post $object_type, string $output = 'names' ): string[]|WP_Taxonomy[]
Описание параметров
- $object_type (обязательный)
Тип записи или объект записи, для которого нужно получить таксономии. Это может быть строка с именем типа записи (например,'post'
), массив строк с именами типов записей или объект типаWP_Post
. - $output (необязательный)
Формат возвращаемого результата:'names'
— возвращает массив имен таксономий (по умолчанию).'objects'
— возвращает массив объектов таксономий (WP_Taxonomy
).
Возвращаемое значение
Функция возвращает массив имен или объектов таксономий, связанных с указанным типом записи или объектом.
Пример 1: Получение имен таксономий для типа записи
В этом примере мы получим список всех таксономий для стандартного типа записи 'post'
:
$taxonomies = get_object_taxonomies( 'post' );
print_r( $taxonomies );
/* Результат:
Array
(
[0] => category
[1] => post_tag
[2] => post_format
)
*/
Пример 2: Получение объектов таксономий для типа записи
Если нужно получить объекты таксономий, а не их имена, передаем в параметр $output
значение 'objects'
:
$taxonomy_objects = get_object_taxonomies( 'post', 'objects' );
print_r( $taxonomy_objects );
/* Результат:
Array
(
[category] => stdClass Object
(
[name] => category
[label] => Categories
[hierarchical] => 1
[public] => 1
[show_ui] => 1
...
)
[post_tag] => stdClass Object
(
[name] => post_tag
[label] => Tags
...
)
[post_format] => stdClass Object
(
[name] => post_format
[label] => Post Formats
...
)
)
*/
Пример 3: Получение таксономий для текущего поста
Вместо указания типа записи можно передать объект записи, чтобы получить таксономии для конкретного поста. В этом примере мы выводим таксономии для текущего поста:
add_action('wp_head', 'output_current_post_taxonomies');
function output_current_post_taxonomies() {
global $post;
$taxonomy_names = get_object_taxonomies( $post );
print_r( $taxonomy_names );
}
/* Результат:
Array
(
[0] => category
[1] => post_tag
[2] => post_format
)
*/
Пример 4: Получение таксономий для нескольких типов записей
Функция также поддерживает массив типов записей. В этом примере мы получаем таксономии для стандартного типа записи post
и произвольного типа записи my_custom_type
:
$taxonomies = get_object_taxonomies( array( 'post', 'my_custom_type' ), 'names' );
print_r( $taxonomies );
/* Результат:
Array
(
[0] => category
[1] => post_tag
[2] => post_format
[3] => custom_taxonomy
)
*/
Заключение
Функция get_object_taxonomies()
предоставляет удобный способ получения таксономий, связанных с типами записей или конкретными объектами записей. Она позволяет гибко работать как с именами таксономий, так и с объектами таксономий, что может быть полезно при работе с различными типами контента в WordPress.