Obține slug-ul termenului pentru articolul curent
Lucrez pe un șablon pentru un tip de articol personalizat unde afișez un meniu de navigare cu legături către toate articolele din același termen.
Acum vreau să folosesc acest șablon pentru toate termenele diferite, astfel încât $term_slug trebuie să conțină slug-ul termenului articolului curent pentru a putea corespunde cu celelalte articole.
Am găsit de multe ori pe internet acest cod pentru a face treaba, dar nu funcționează pentru mine:
$terms = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
$term_slug = $term->slug;
Acest articol spune că acest cod ar face treaba: http://www.wpbeginner.com/wp-themes/how-to-show-the-current-taxonomy-title-url-and-more-in-wordpress/
Ce fac greșit?
$args = array(
'post_type' => 'myposttype', // tipul meu de postare
'mytaxonomy' => $term_slug, // taxonomia mea
'order' => 'ASC' // ordinea ascendentă
);
$current_id = get_the_ID();
$the_query = new WP_Query( $args );
if($the_query->have_posts() ) {
while ($the_query->have_posts()) { $the_query->the_post();
echo '<li><a' . ($current_id == $post->ID ? ' class="current"' : '') . ' href=" ' . get_permalink() . ' ">' . get_the_title() . '</a></li>';
}
}

Codul tău funcționează pe o pagină unde este interogat un termen (o arhivă de termeni de taxonomie), nu pe un singur articol.
Pentru un singur articol, trebuie să preiei termenii care aparțin acelui articol.
$terms = get_the_terms( $post->ID, 'taxonomia-ta' );
if ( !empty( $terms ) ){
// preia primul termen
$term = array_shift( $terms );
echo $term->slug;
}

Soluție uimitoare! Am încercat să folosesc documentația pentru a obține toți termenii, dar fără succes. Știi cumva o metodă pentru a face asta? http://codex.wordpress.org/Function_Reference/get_term

Nu ai nevoie de o buclă for.
$slugs = wp_get_post_terms($post_id,'your-taxonomy',['fields'=>'slugs']);
$slugs
va fi un array cu slug-urile din your-taxonomy
care sunt atribuite postului cu $post_id
Sursa:
