本記事のソースコードの利用によって生じた損害について、当方は一切の責任を負いません。ご自身の判断と責任のもとで参照・ご利用ください。
この記事は最終更新から3年以上経過しています。
グローバルメニューなどで現在表示されてるページのメニューの色を変えることはよくあります。現在地表示とでもいうのでしょうか。
最初の実装では、タグを複数選ぶと選んだタグすべてにcurrentを付与してしまったので、現在表示しているタグのスラッグを取得し、一致するものに対してcurrentを付与するようにしました。とりあえずこれで良しでございます。
<ul>
<?php
//現在のページのタグを取得
$term_object = get_queried_object(); // タームオブジェクトを取得
$slug = $term_object->slug; // タームスラッグ
//
$term_list = get_terms('post_tag');
$result_list = [];
?>
<?php foreach ($term_list as $term): ?>
<li><a href="<?php echo $u = (get_term_link( $term, 'post_tag' )); ?>"<?php
$tag_id = $term->term_id;
//タグのスラッグを取得
$term_slug = $term -> slug;
if ($slug == $term_slug) {
echo ' class="current"';
}
?>><?php echo $term->name; ?>
</a></li>
<?php endforeach; ?>
</ul>