「カテゴリー・タクソノミー一覧をselectで表示させて選択リンクさせたい」ってことよくありますよね。
で、いつも調べては忘れ、調べては忘れ・・・忘れないためにメモっとこうと思います。
一覧をoptionで出力するコード
<?php
$taxonomy = 'タクソノミー名';
$terms = get_terms($taxonomy);
foreach($terms as $term) {
$terms = get_the_terms($post->ID,$taxonomy);
$slug = $terms[0]->slug;
if(is_tax() && $slug == $term->slug){
echo '<option value="'.get_term_link($term->slug,$taxonomy).'" selected>'.$term->name.'</option>';
}else{
echo '<option value="'.get_term_link($term->slug,$taxonomy).'">'.$term->name.'</option>';
}
}
?>
これが一覧を出力するコードになります。
ちなみにこれは「option」を一覧で出力するだけです。
selectでリンクさせるコード
<select name="select" onChange="location.href=value;">
<option value="">カテゴリ</option>
<?php
$taxonomy = 'column_cat';
$terms = get_terms($taxonomy);
foreach($terms as $term) {
$terms = get_the_terms($post->ID,$taxonomy);
$slug = $terms[0]->slug;
if(is_tax() && $slug == $term->slug){
echo '<option value="'.get_term_link($term->slug,$taxonomy).'" selected>'.$term->name.'</option>';
}else{
echo '<option value="'.get_term_link($term->slug,$taxonomy).'">'.$term->name.'</option>';
}
}
?>
</select>
selectでリンクさせたい場合はこちら。
選択肢がセレクトされたらリンクして、該当のカテゴリーまたはタクソノミーページに飛びます。
そして飛び先のタクソノミーをセレクト状態にして表示してくれるという感じです。