Функция get_the_taxonomies()
используется для получения всех таксономий, связанных с записью. Она возвращает массив, где ключами являются ярлыки таксономий, а значениями — списки элементов этих таксономий с HTML-ссылками на архивы соответствующих терминов.
get_the_taxonomies( int|WP_Post $post, array $args = array() ): string[]
Описание параметров
- $post (опциональный)
ID записи или объект записи (WP_Post
). Если функция используется внутри Цикла WordPress, этот параметр можно не указывать, и функция автоматически возьмет текущую запись. - $args(опциональный)
Массив аргументов для настройки формата отображения списка таксономий.- template: шаблон для вывода списка таксономий, где
%s
— это название таксономии, а%l
— это список её терминов.
По умолчанию:'%s: %l.'
- term_template: шаблон для вывода отдельного термина. По умолчанию термин отображается как ссылка на его архив.
По умолчанию:'<a href="%1$s">%2$s</a>'
- template: шаблон для вывода списка таксономий, где
Возвращаемое значение
Функция возвращает массив строк, каждая из которых представляет собой таксономию и её элементы в виде ссылок.
Пример 1: Получение таксономий для записи
Этот пример демонстрирует использование функции для получения всех таксономий для записи с ID 119:
$taxonomies = get_the_taxonomies( 119 );
print_r( $taxonomies );
Результат:
Array
(
[category] => Категории: <a href="https://example.com/category/coding">Программирование</a>.
[post_tag] => Метки: <a href="https://example.com/tag/loop">Циклы</a> и <a href="https://example.com/tag/tutorials">Учебники</a>.
)
Пример 2: Получение таксономий для произвольного типа записи
Функция может использоваться для получения таксономий любых типов записей, включая пользовательские типы записей с произвольными таксономиями:
$taxonomies = get_the_taxonomies( 7383 ); // ID произвольного поста
print_r( $taxonomies );
Результат:
Array
(
[project_category] => Категории проектов: <a href="https://example.com/project-category/web-design">Веб-дизайн</a>.
[project_tag] => Метки проектов: <a href="https://example.com/project-tag/modern">Современные</a>.
)
Пример 3: Изменение формата вывода
Чтобы изменить шаблон отображения таксономий и их терминов, можно использовать аргументы template
и term_template
:
$taxonomies = get_the_taxonomies( 119, array(
'template' => 'Таксономия "%s": %l',
'term_template' => '<a href="%1$s" target="_blank">%2$s</a>',
) );
print_r( $taxonomies );
Результат:
Array
(
[category] => Таксономия "Категории": <a href="https://example.com/category/coding" target="_blank">Программирование</a>
[post_tag] => Таксономия "Метки": <a href="https://example.com/tag/loop" target="_blank">Циклы</a> и <a href="https://example.com/tag/tutorials" target="_blank">Учебники</a>
)
Пример 4: Вывод таксономий в виде списка
Этот пример выводит таксономии и их термины в виде списка <ul>
:
$taxonomies = get_the_taxonomies( 119 );
if ( $taxonomies ) {
echo "<ul>\n";
foreach ( $taxonomies as $taxonomy ) {
echo "<li>{$taxonomy}</li>\n";
}
echo "</ul>\n";
}
Результат:
<ul>
<li>Категории: <a href="https://example.com/category/coding">Программирование</a>.</li>
<li>Метки: <a href="https://example.com/tag/loop">Циклы</a> и <a href="https://example.com/tag/tutorials">Учебники</a>.</li>
</ul>
Пример 5: Получение таксономий внутри Цикла WordPress
Функция может быть использована внутри Цикла WordPress без явной передачи ID записи:
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
$taxonomies = get_the_taxonomies();
if ( $taxonomies ) {
echo "<div class='post-taxonomies'>";
foreach ( $taxonomies as $taxonomy ) {
echo "<p>{$taxonomy}</p>";
}
echo "</div>";
}
}
}
Этот код будет автоматически получать таксономии для каждой записи в цикле.
Заключение
Функция get_the_taxonomies()
предоставляет удобный способ для получения и отображения таксономий, связанных с записью, будь то стандартные или произвольные типы записей. Вы можете настроить формат отображения таксономий и их терминов с помощью параметров, что делает её гибким инструментом для вывода информации в вашем шаблоне или плагине.