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

88

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

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

Теги:
taxonomy

8 ответов

228
Лучший ответ

Nevermind! Я нашел это:)

get_queried_object()->term_id;
  • 4
    Большой! Это сэкономило мне много времени: D
  • 0
    Действительно, большое спасибо ...
Показать ещё 5 комментариев
33

Здесь нужен весь фрагмент кода:

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

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

get_queried_object_id()
  • 2
    get_queried_object_id () была введена в 3.1.0 (23 февраля 2011 г.) и должна быть правильным ответом на заданный вопрос. > На странице taxonomy.php в моей папке шаблонов WordPress я хотел бы получить term id текущего term id для функции.
  • 1
    Да, этот ответ был идеальным
8

Просто скопируйте пасту ниже кода!

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

<?php 
   $tax = $wp_query->get_queried_object();
   echo ''. $tax->name . '';
   echo "<br>";
   echo ''. $tax->description .''; 
?>
4
<?php 
$terms = get_the_terms( $post->ID, 'taxonomy');
foreach ( $terms as $term ) {
    $termID[] = $term->term_id;
}
echo $termID[0]; 
?>
1

Смотрите wp_get_post_terms(), вы бы сделали примерно так:

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

print_r($terms);
0

Если вы находитесь на странице таксономии. Вот как вы получите все подробности о таксономии.

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;
0

Это термин 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 );
        }
    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню