Obține ID-ul termenului curent
Folosesc următorul cod pentru a obține un array cu taxonomiile copil și pentru a le afișa cu linkuri într-o listă neordonată.
<?php
$termID = 10;
$taxonomyName = "products";
$termchildren = get_term_children( $termID, $taxonomyName );
echo '<ul>';
foreach ($termchildren as $child) {
$term = get_term_by( 'id', $child, $taxonomyName );
echo '<li><a href="' . get_term_link( $term->name, $taxonomyName ) . '">' . $term->name . '</a></li>';
}
echo '</ul>';
?>
Ceea ce încerc să realizez este să obțin ID-ul termenului (categoriei) actual astfel încât să-l pot înlocui în $termID și să nu trebuiască să hardcodez ID-ul termenului.
Orice ajutor ar fi foarte apreciat!
Mulțumesc!

Iată o funcție pe care o folosesc pentru a lista subtermeni:
/**
* Listează toate subintrările unei taxonomii.
*
* @return void
*/
function ttt_get_subterms( $args = array () )
{
if ( ! isset ( get_queried_object()->taxonomy ) )
{
return;
}
$options = array (
'child_of' => get_queried_object_id()
, 'echo' => 0
, 'taxonomy' => get_queried_object()->taxonomy
, 'title_li' => FALSE
, 'use_desc_for_title' => FALSE
);
$settings = array_merge( $options, $args );
$subtermlist = wp_list_categories( $settings );
// Fără rezultate, WP creează un element dummy. Acesta nu conține link-uri.
! empty ( $subtermlist ) and FALSE !== strpos( $subtermlist, '<a ' )
and print "<ul class=subterms>$subtermlist</ul>";
}
Folosește-o ca wp_list_categories()
.
Evită get_term_by()
. Este foarte costisitoare și nu este necesară.

Pentru a obține termenul curent, puteți folosi get_query_var( 'term' );
, iar pentru a obține taxonomia curentă puteți folosi get_query_var( 'taxonomy' )
, astfel încât puteți face ceva de genul:
$term_slug = get_query_var( 'term' );
$taxonomyName = get_query_var( 'taxonomy' );
$current_term = get_term_by( 'slug', $term_slug, $taxonomyName );
$termchildren = get_term_children( $current_term->term_id, $taxonomyName );
echo '<ul>';
foreach ($termchildren as $child) {
$term = get_term_by( 'id', $child, $taxonomyName );
echo '<li><a href="' . get_term_link( $term->name, $taxonomyName ) . '">' . $term->name . '</a></li>';
}
echo '</ul>';

Sau poți folosi: term_exists( $term, $taxonomy, $parent )
$term_id = term_exists( $term_name );
Vezi WordPress Codex
Verifică dacă un termen dat există și returnează ID-ul termenului
Returnează ID-ul termenului dacă nu a fost specificată nicio taxonomie și termenul există.

Pentru a obține ID-ul termenului curent, folosește:
$term_id = get_queried_object()->term_id;
get_query_var
nu poate fi utilizat în acest caz, deoarece term_id
nu se află în lista de variabile disponibile public.
