Как получить текущий термин в пользовательской таксономии WordPress?

15 февр. 2011 г., 16:45:55
Просмотры: 38.7K
Голосов: 6

Мне нужно отобразить текущий термин моей пользовательской таксономии в отдельной записи.

пример:

  • Моя пользовательская таксономия - products, а её термины - product-1, product-2 и products-3.
  • Моя запись привязана к product-2
  • И я хочу вывести текущий products = products-2 в моей записи

По сути, мне нужна функция, похожая на WordPress-функцию the_category();, но для моей таксономии, что-то вроде the_customtaxonomy();

ОБНОВЛЕНИЕ:

На самом деле мне нужно получить ID этого термина, так как я хочу показать иконку для него в single.php, например, функция наподобие the_category_ID();

0
Все ответы на вопрос 7
3

Вы можете использовать get_the_term_list():

Описание

Возвращает HTML-строку с терминами таксономии, связанными с записью и указанной таксономией. Термины ссылаются на соответствующие страницы списка терминов.

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

<?php get_the_term_list( $id, $taxonomy, $before, $sep, $after ) ?>
15 февр. 2011 г. 17:47:44
Комментарии

единственная проблема с get_the_term_list заключается в том, что он оборачивает термины в html. используйте wp_get_object_terms(), чтобы получить массив терминов

anu anu
15 февр. 2011 г. 18:38:52

В этом случае вы можете использовать get_the_terms вместо этого.

t31os t31os
15 февр. 2011 г. 18:49:52

@anu, Ну, он же сказал, что хотел функцию типа the_category, которая тоже оборачивает термины в HTML.

User User
15 февр. 2011 г. 20:08:21
0

спасибо за ответ от моего друга, я нашел способ показать slug моей таксономии

<?php
 $terms = get_terms('my-taxonomy-name');
 foreach ( $terms as $term ) {
 echo $term->slug.' ';
 }
?>

но этот код возвращает все термины в моей таксономии, а мне нужно возвращать только текущий термин таксономии...

ОБНОВЛЕНИЕ:

я наконец нашел это решение и добавил проверку на пустые термины - работает

<?php   // Получаем термины для поста
 $terms = get_the_terms( $post->ID , 'oil' );
 // Перебираем массив терминов
 if ( $terms != null ){
 foreach( $terms as $term ) {
 // Выводим slug термина (термин является объектом)
 print $term->slug ;
 // Удаляем остальные данные из объекта, так как они не нужны
 unset($term);
} } ?>
16 февр. 2011 г. 09:41:50
1

Я нашел это:

<?php 
// вывод списка терминов заданной таксономии с помощью wp_list_categories (также полезно в качестве виджета при использовании плагина PHP Code)

$taxonomy     = 'genre';
$orderby      = 'name'; 
$show_count   = 0;      // 1 - да, 0 - нет
$pad_counts   = 0;      // 1 - да, 0 - нет
$hierarchical = 1;      // 1 - да, 0 - нет
$title        = '';

$args = array(
  'taxonomy'     => $taxonomy,
  'orderby'      => $orderby,
  'show_count'   => $show_count,
  'pad_counts'   => $pad_counts,
  'hierarchical' => $hierarchical,
  'title_li'     => $title
);
?>

<ul>
<?php wp_list_categories( $args ); ?>
</ul>

Этот код получает все термины в моей пользовательской таксономии, а мне нужно получить текущий термин.

15 февр. 2011 г. 17:15:26
Комментарии

Для ваших изображений следует использовать CSS псевдоселекторы для вставки иконок.

Brian Fegter Brian Fegter
21 сент. 2011 г. 16:30:22
0

Вам необходимо использовать wp_get_object_terms()

wp_get_object_terms( $object_ids, $taxonomies, $args )

  • $object_ids: строка или массив идентификаторов объектов, для которых нужно получить термины
  • $taxonomies: строка или массив таксономий
15 февр. 2011 г. 18:35:06
0
echo get_the_term_list( get_the_ID(), 'tax_name', 'Продукт:' );
18 мар. 2011 г. 20:45:45
0

Взяв код пользователя user3208, я добавил немного кода, который добавляет URL к термину. Надеюсь, это кому-то поможет.

<?php   // Получаем термины для записи
$terms = get_the_terms( $post->ID , 'oil' );
// Перебираем каждый элемент, так как это массив
if ( $terms != null ){
foreach( $terms as $term ) {
$term_link = get_term_link( $term, 'oil' );
 // Выводим название и URL
echo '<a href="' . $term_link . '">' . $term->name . '</a>';
// Удаляем остальные данные, хранящиеся в объекте, так как они не нужны
unset($term); } } ?>
28 окт. 2016 г. 14:47:32
0

Небольшое обновление по теме, так как этот вопросуже около 11 лет, и никто об этом не упомянул.


Вы можете использовать get_query_var().

Извлекает значение переменной запроса в классе WP_Query. для получения текущего термина, по которому выполняется запрос на странице таксономии.

Вместо выполнения дополнительного запроса, мы просто получаем термин из текущего. Затем мы можем вывести его на фронтенде.

<?= get_query_var( 'term' ); ?>
18 мар. 2021 г. 01:29:20