get_taxonomies()WP 3.0.0

Получает список зарегистрированных таксономий. Можно ограничить список по нужным параметрам.

Основа для: wp_nav_menu_taxonomy_meta_boxes()
1 раз — 0.000018 сек (очень быстро) | 50000 раз — 0.10 сек (скорость света) | PHP 7.0.8, WP 4.6.1

Хуков нет.

Возвращает

Строку[]|WP_Taxonomy[].

  • массив названий, если параметр $output равен 'names'
  • массив объектов таксономий, если параметр $output равен 'objects'.

Массив объектов таксономий представляет собой массив, описывающий подробно каждую таксономию.

Использование

get_taxonomies( $args, $output, $operator );
$args(массив)

Массив параметров, которым должен соответствовать результат функции, т.е. указав нужные параметры, можно получить данные только о тех таксономиях, которые нам необходимы.

Параметры которые можно указать в массиве:

  • name - название таксономии;
  • object_type - (массив) к каким типам записей прикреплена таксономия;
  • hierarchical - true - покажет только древовидные таксономии;
  • show_in_nav_menus
  • cap - (объект) права;
  • label - заголовок (название таксономии);
  • labels - (объект) заголовки таксономии (различные названия);
  • singular_label
  • show_ui
  • show_tagcloud
  • public - true - получить публичные таксономии;
  • update_count_callback
  • rewrite
  • query_var
  • manage_cap
  • edit_cap
  • delete_cap
  • assign_cap
  • _builtin - false - исключить встроенные таксономии (например, category).

Полный список и что означает каждый параметр, смотрите в описании функции register_taxonomy().

По умолчанию: []

$output(строка)

Вид в котором будет получен результат работы функции:

  • names - Получить только названия зарегистрированных таксономий. По умолчанию.

  • objects - Получить массив объектов, содержащих полную информацию о таксономиях.

По умолчанию: "names"

$operator(строка)

Логический оператор, определяющий, как обрабатывать несколько значений параметра $args. Принимает:

  • or - выбирает таксономии, в которых совпадает любой из указанных элементов $args.
  • and - выбирает таксономии, в которых совпадают все элементы из $args.

По умолчанию: 'and'

Примеры

0

#1 Выведем на экран все зарегистрированные таксономии:

Получим массив названий всех зарегистрированных таксономий

$taxonomies = get_taxonomies();

foreach( $taxonomies as $taxonomy ) {
	echo '<p>'. $taxonomy. '</p>';
}
0

#2 Получим только публичные таксономии

Выведем на экран список публичных ('public' => true) не встроенных таксономий (произвольных) ('_builtin' => false):

<?php
$args = array(
	'public'   => true,
	'_builtin' => false
);
$output = 'names'; // или objects
$operator = 'and'; // 'and' или 'or'

$taxonomies = get_taxonomies( $args, $output, $operator );

if( $taxonomies ){
	foreach( $taxonomies as $taxonomy ){
		echo '<p>'. $taxonomy. '</p>';
	}
}
?>
0

#3 Получим таксономию 'genre'

Получим таксономию с названием 'genre' ('name' => 'genre') и выведем на экран название:

<?php
$args = array(
  'name' => 'genre'
);
$output = 'objects'; // или objects
$taxonomies = get_taxonomies( $args, $output );

if( $taxonomies ) {
	foreach ( $taxonomies as $taxonomy ) {
		echo '<p>' . $taxonomy->name . '</p>';
	}
}
?>
0

#4 Получим все таксономии, которые используются в REST API

$rest_taxes = get_taxonomies( [ 'show_in_rest' => true ], 'names' );

print_r( $rest_taxes );

/*
Array
(
	[category] => category
	[post_tag] => post_tag
	[nav_menu] => nav_menu
	[note_tag] => note_tag
)
*/
0

#5 Получим таксономии типа записи

Если запросить таксономии с определенным типом поста, например, как показано ниже, будут показаны только таксономии, связанные с этим типом поста. Если таксономия связана с несколькими типами постов, она не будет показана.

$args = [
	'object_type' => [ 'post' ]
];

$taxonomies = get_taxonomies( $args );

print_r( $taxonomies );

/*
Array
(
	[category] => category
	[post_tag] => post_tag
	[post_format] => post_format
)
*/

Альтернативой является использование get_object_taxonomies().

Заметки

  • Global. WP_Taxonomy[]. $wp_taxonomies The registered taxonomies.

Список изменений

С версии 3.0.0 Введена.

Код get_taxonomies() WP 6.4.3

function get_taxonomies( $args = array(), $output = 'names', $operator = 'and' ) {
	global $wp_taxonomies;

	$field = ( 'names' === $output ) ? 'name' : false;

	return wp_filter_object_list( $wp_taxonomies, $args, $operator, $field );
}