get_terms
извлекает все доступные теги, а не только те, которые связаны с текущим сообщением. Вместо этого измените строку get_terms
вверху следующим образом:
$taxonomy = 'jetpack-portfolio-type' ;
$tax_terms = get_the_terms( get_the_ID(), $taxonomy );
Это будет собирать термины $taxonomy
, связанные с текущим сообщением.
Изменить: Я пропустил вопрос о запятых. Чтобы полностью избавиться от них, вы можете просто удалить их из вывода:
foreach ( $tax_terms as $tax_term ) {
echo '<a class="filter" href="/project-type/'. $tax_term->slug.'">' . $tax_term->name .'</a> ';
}
Я удалил ,
сразу за закрывающим </a>
, поэтому теперь он будет разделяться только пробелами. Если вы хотите иметь специальный разделитель только между элементами, вы можете добиться этого следующим образом:
$separator = ''; // initialize empty
foreach ( $tax_terms as $tax_term ) {
echo $separator.'<a class="filter" href="/project-type/'. $tax_term->slug.'">' . $tax_term->name .'</a>';
if (empty($separator)) {
// Choose a custom separator HERE:
$separator = ', ';
}
}