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


120

Я создал страницу taxonomy.php в папке своей темы WordPress. Я хотел бы получить текущий идентификатор термина для функции. Как я могу это получить?

get_query_var('taxonomy') возвращает только термин slug, мне нужен идентификатор

Ответы:


304

Неважно! Я нашел это :)

get_queried_object()->term_id;

4
Большой! Это сэкономило мне много времени: D
MavBzh

Большое спасибо!
Анаит Казарян

26
Вы также можете просто использовать get_queried_object_id()для получения только идентификатора. Весь фрагмент будет$term_id = get_queried_object_id();
Дэвид

Хороший ответ. Недавно я увидел вопрос в обмене стеками WordPress. Вы не могли бы проверить . wordpress.stackexchange.com/questions/214453/…

Большое спасибо
FaISalBLiNK

42

Просто и легко!

get_queried_object_id()

3
get_queried_object_id () был представлен в версии 3.1.0 (23 февраля 2011 г.) и должен быть правильным ответом на заданный вопрос. > taxonomy.phpв моей папке шаблонов wordpress, я хотел бы получить текущую term idдля функции.
Pea

1
Да, этот ответ был идеальным
Гендрит

39

Вот весь необходимый фрагмент кода:

$queried_object = get_queried_object();
$term_id = $queried_object->term_id;

14

Просто скопируйте вставку под кодом!

Будет напечатано название и описание вашей текущей таксономии (необязательно)

<?php 
   $tax = $wp_query->get_queried_object();
   echo ''. $tax->name . '';
   echo "<br>";
   echo ''. $tax->description .''; 
?>

11

Если вы находитесь на странице таксономии.

Так вы получите все подробности о таксономии.

get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );

Вот как вы получаете идентификатор таксономии

$termId = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) )->term_id;

Но если вы находитесь на странице сообщения (таксономия -> ребенок)

$terms = wp_get_object_terms( get_queried_object_id(), 'taxonomy-name');
$term_id = $terms[0]->term_id;



1

Вам нужен термин slug. Похоже, вы можете получить такой идентификатор, если вам это нужно:

function get_term_link( $term, $taxonomy = '' ) {
    global $wp_rewrite;

    if ( !is_object($term) ) {
        if ( is_int( $term ) ) {
            $term = get_term( $term, $taxonomy );
        } else {
            $term = get_term_by( 'slug', $term, $taxonomy );
        }
    }
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.