Ottenere lo slug del termine del post corrente
Sto lavorando su un template per un tipo di post personalizzato dove mostro un menu di navigazione con link a tutti i post dello stesso termine.
Ora voglio utilizzare questo template per tutti i diversi termini quindi $term_slug deve contenere lo slug del termine del post corrente in modo che possano corrispondere agli altri post.
Ho trovato molte volte su internet questo codice per svolgere il lavoro ma non funziona per me:
$terms = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
$term_slug = $term->slug;
Questo articolo dice che questo dovrebbe funzionare: http://www.wpbeginner.com/wp-themes/how-to-show-the-current-taxonomy-title-url-and-more-in-wordpress/
Cosa sto facendo di sbagliato?
$args = array(
'post_type' => 'myposttype', // tipo di post personalizzato
'mytaxonomy' => $term_slug, // tassonomia
'order' => 'ASC' // ordinamento ascendente
);
$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>';
}
}

Il tuo codice funziona su una pagina dove viene interrogato un termine (un archivio di termini di tassonomia), non su un singolo articolo.
Per un singolo articolo, devi recuperare i termini appartenenti a quell'articolo.
$terms = get_the_terms( $post->ID, 'your-taxonomy' );
if ( !empty( $terms ) ){
// ottieni il primo termine
$term = array_shift( $terms );
echo $term->slug;
}

Soluzione fantastica! Ho provato a usare la documentazione per ottenere tutti i termini ma niente da fare. Conosci un modo per farlo? http://codex.wordpress.org/Function_Reference/get_term

Non hai bisogno di un ciclo for.
$slugs = wp_get_post_terms($post_id,'your-taxonomy',['fields'=>'slugs']);
$slugs
sarà un array di slug di your-taxonomy
assegnati al post con $post_id
Fonti:
