get_object_taxonomies()
Получает таксономии относящиеся к указанному типу записи (типу поста) или к переданному объекту.
Не делает запросов, а просто сверяет данные из глобальной переменной $wp_taxonomies.
Хуков нет.
Возвращает
Строку[]|WP_Taxonomy[]
. Все названия или объекты таксономий относящихся к указанному типу записи или другому объекту.
Использование
get_object_taxonomies( $object, $output = 'names' );
- $object(строка/строка[]/WP_Post) (обязательный)
- Название типа записи, массив названий типов записей или объект отдельной записи (WP_Post, $post).
- $output(строка)
В каком виде возвращать результат. Может быть:
names
- вернет только названия таксономий
objects
- вернет объекты таксономийПо умолчанию: 'names'
Примеры
#1 Названия таксономий для типа поста
$taxonomy_names = get_object_taxonomies( 'post' ); print_r( $taxonomy_names); /* выведет: Array ( [0] => category [1] => post_tag [2] => post_format ) */
#2 Объекты таксономии для типа поста
Аналогичный предыдущему пример, который вернет таксономии относящиеся к типу поста в виде объектов данных для каждой таксономии:
$taxonomy_objects = get_object_taxonomies( 'post', 'objects' ); print_r( $taxonomy_objects ); /* выведет: Array ( [category] => stdClass Object ( [hierarchical] => 1 [update_count_callback] => [rewrite] => [query_var] => category_name [public] => 1 [show_ui] => 1 [show_tagcloud] => 1 [_builtin] => 1 [labels] => stdClass Object ( ... ) ... [name] => category [label] => Categories ) [post_tag] => stdClass Object ( ... ) [post_format] => stdClass Object ( .... ) ) */
#3 Названия таксономий для объекта записи
Чтобы получить названия таксономий поддерживаемых текущим постом, нужно вместо названия типа поста передать весь объект поста:
add_action('wp_head','get_current_post_taxonomies'); function get_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 (родной) и mypost (произвольный), тогда:
$tax_names = get_object_taxonomies( array('post','mypost') ); /* $tax_names Array ( [0] => category // такса post [1] => post_tag // такса post [2] => post_format // такса post [3] => mypost_tag // такса mypost [4] => mypost_cat // такса mypost ) */
Заметки
- Global. WP_Taxonomy[]. $wp_taxonomies The registered taxonomies.
Список изменений
С версии 2.3.0 | Введена. |