Отображение термина таксономии вместо категории в заголовке

Начну с того, что я очень плохо разбираюсь в Wordpress.

У меня есть следующий код, который отображает категорию каждого сообщения в результатах поиска:

<?php 
   $category = get_the_category();
   if ($category ) {
        echo '<a href="' . get_category_link( $category[0]->term_id ) . '" title="' . $category[0]->name . '" ' . '>' . $category[0]->name.'</a>';
        if(isset($category[1])){
           echo ' ...';
        }
   }
?>

Что я хочу сделать, так это заменить категорию на имя термина любой таксономии, которую имеют посты. Я просмотрел кучу похожих вопросов, но я не могу заставить его работать.

Я предполагаю, что это как-то связано с этим: https://codex.wordpress.org/Function_Reference/get_term но из-за моих ограниченных навыков PHP я застрял.

Любая помощь очень ценится!


person user2832718    schedule 15.01.2018    source источник


Ответы (1)


Если после отображения условий/терминов для каждого поста вы можете использовать get_the_terms.

// Get taxonomy terms specifc to current post
$terms =  get_the_terms( $post->ID , 'your-taxonomy-name-here' );

foreach ( $terms as $term ) {
    echo '&nbsp;<a href="' .esc_url( home_url( '/' ) ). $term->slug . '" title="' . $term->name . '" ' . '>' . $term->name .'</a>	&nbsp;';
}

Все, что вам нужно сделать, это заменить «your-taxonomy-name-here» на имя вашей таксономии и оформить вывод по своему вкусу.

person Jon Bennett    schedule 15.01.2018
comment
Круто, можно ли настроить это так, чтобы оно искало, какая таксономия имеет пост? - person user2832718; 15.01.2018
comment
В настоящее время он находит все таксономии текущего поста. Что еще вы хотите сделать? - person Jon Bennett; 15.01.2018
comment
$terms = get_the_terms($post-›ID, 'ваше-таксономическое-имя-здесь'); Это то, о чем я думаю. Перечисленные сообщения имеют одну из многих таксономий, поэтому я не могу заменить только одну. Я могу что-то не так понять (я обычно понимаю, когда дело доходит до кодирования) - person user2832718; 15.01.2018
comment
Ааа, хорошо, теперь я понимаю, значит, у вас есть несколько таксономий, и вы хотите, чтобы в сообщении отображались термины из них всех? - person Jon Bennett; 15.01.2018
comment
Попробуйте: $multi_terms = wp_get_post_terms ($post-›ID , array('ваша-таксономия-один','ваша-таксономия-два','ваша-таксономия-три') ); - person Jon Bennett; 15.01.2018