Jak uzyskać aktualny identyfikator terminu taksonomii w WordPress?

120

Utworzyłem stronę taxonomy.php w moim folderze motywów WordPress. Chciałbym uzyskać bieżący identyfikator terminu dla funkcji. Jak mogę to uzyskać?

get_query_var('taxonomy') zwraca tylko termin slug, chcę ID

Niepoprawna składnia
źródło

Odpowiedzi:

304

Nieważne! Znalazłem to :)

get_queried_object()->term_id;
Niepoprawna składnia
źródło
4
Wspaniały! Zaoszczędziło mi to dużo czasu: D
MavBzh
Dziękuję Ci bardzo!
Anahit Ghazaryan
26
Możesz również użyć get_queried_object_id()do pobrania samego identyfikatora. Cały fragment będzie wyglądał następująco$term_id = get_queried_object_id();
David
Dobra odpowiedź . Ostatnio widzę pytanie w wymianie stosów WordPress. Czy mógłbyś sprawdzić. wordpress.stackexchange.com/questions/214453/ ...
Dziękuję bardzo
FaISalBLiNK
42

Proste i łatwe!

get_queried_object_id()
theMukhiddin
źródło
3
get_queried_object_id () została wprowadzona w wersji 3.1.0 (23 lutego 2011) i powinna być poprawną odpowiedzią na zadane pytanie. > taxonomy.phpw moim folderze szablonów wordpress, chciałbym pobrać aktualny term iddla funkcji.
Pea
1
Tak, ta odpowiedź była doskonała
Gendrith
39

Oto cały potrzebny fragment kodu:

$queried_object = get_queried_object();
$term_id = $queried_object->term_id;
Tim Bowen
źródło
14

Po prostu skopiuj wklej poniższy kod!

Spowoduje to wydrukowanie aktualnej nazwy i opisu taksonomii (opcjonalnie)

<?php 
   $tax = $wp_query->get_queried_object();
   echo ''. $tax->name . '';
   echo "<br>";
   echo ''. $tax->description .''; 
?>
Varsha Dhadge
źródło
11

Jeśli jesteś na stronie taksonomii.

W ten sposób uzyskujesz wszystkie szczegóły dotyczące taksonomii.

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

W ten sposób otrzymujesz identyfikator taksonomii

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

Ale jeśli jesteś na stronie postu (taksomonia -> dziecko)

$terms = wp_get_object_terms( get_queried_object_id(), 'taxonomy-name');
$term_id = $terms[0]->term_id;
Furia
źródło
7
<?php 
$terms = get_the_terms( $post->ID, 'taxonomy');
foreach ( $terms as $term ) {
    $termID[] = $term->term_id;
}
echo $termID[0]; 
?>
Jadson Moreira
źródło
3

Zobacz wp_get_post_terms () , zrobiłbyś coś takiego:

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

print_r($terms);
Purvik Dhorajiya
źródło
1

Jest to termin ślimak, którego chcesz. Wygląda na to, że możesz uzyskać taki identyfikator, jeśli tego potrzebujesz:

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 );
        }
    }
SYED FARHAN KARIM
źródło