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.0.2

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 );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *