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

120

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

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

InvalidSyntax
источник

Ответы:

304

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

get_queried_object()->term_id;
InvalidSyntax
источник
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 .''; 
?>
Varsha Dhadge
источник
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;
Ярость
источник
7
<?php 
$terms = get_the_terms( $post->ID, 'taxonomy');
foreach ( $terms as $term ) {
    $termID[] = $term->term_id;
}
echo $termID[0]; 
?>
Жадсон Морейра
источник
3

См. Wp_get_post_terms () , вы бы сделали что-то вроде этого:

global $post;
$terms = wp_get_post_terms( $post->ID, 'YOUR_TAXONOMY_NAME',array('fields' => 'ids') );

print_r($terms);
Пурвик Дхораджия
источник
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 );
        }
    }
СИД ФАРХАН КАРИМ
источник