Получить ярлык термина текущей записи
Я работаю с шаблоном записи определенного типа, где показываю навигационное меню со ссылками на все записи из того же термина.
Теперь я хочу использовать этот шаблон для всех разных терминов, поэтому $term_slug должен содержать ярлык термина текущей записи, чтобы они соответствовали другим записям.
Я много раз находил в интернете этот код для решения задачи, но он не работает у меня:
$terms = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
$term_slug = $term->slug;
В этой статье говорится, что это должно сработать: http://www.wpbeginner.com/wp-themes/how-to-show-the-current-taxonomy-title-url-and-more-in-wordpress/
Что я делаю неправильно?
$args = array(
'post_type' => 'myposttype',
'mytaxonomy' => $term_slug,
'order' => 'ASC'
);
$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>';
}
}

Ваш код работает на странице, где запрашивается термин (архив таксономии), а не на отдельной записи.
Для отдельной записи вам нужно получить термины, принадлежащие этой записи.
$terms = get_the_terms( $post->ID, 'your-taxonomy' );
if ( !empty( $terms ) ){
// получаем первый термин
$term = array_shift( $terms );
echo $term->slug;
}

Отличное решение! Я пытался использовать документацию, чтобы получить все термины, но безрезультатно. Вы знаете способ сделать это? http://codex.wordpress.org/Function_Reference/get_term

Вам не нужен цикл for.
$slugs = wp_get_post_terms($post_id,'your-taxonomy',['fields'=>'slugs']);
$slugs
будет массивом слагов (ярлыков) таксономии your-taxonomy
, назначенных записи с $post_id
Источники:
