Web制作 WordPress カテゴリー&タグ

category.phpで表示されるページなどで、スラッグが一致したカテゴリーを反転表示させる方法

2023年10月10日

category.phpで表示されるページなどで、スラッグが一致したカテゴリーを反転表示させるためには以下の2つのコードが必要になります。

ポイント

スラッグが一致したカテゴリーに対して、特定のクラスを付与するコード

付与されたクラスに対して、スタイルを追加するコード

スラッグが一致したカテゴリーに対して、特定のクラスを付与するコード

スラッグが一致しているか判別するために、現在のページで表示中のカテゴリー情報を取得する必要があります。

カテゴリーの取得と、現在表示中のカテゴリー情報は以下のコードで取得することができます。

<ul class="category__items">
  <?php
  $categories = get_categories();
  $current_category = get_queried_object(); // 現在表示中のカテゴリー情報を取得
  $current_slug = $current_category->slug;
  if ($categories) :
    foreach ($categories as $category) :
      // スラッグが一致した場合、『.is-active』を付けて反転表示 
      if ($current_slug === $category->slug) : ?>
        <li class="category__item is-active">
          <a class="category__link" href="<?php echo esc_url(get_category_link($category->term_id)); ?>"><?php echo $category->name; ?></a>
        </li>
      <?php else : ?>
        <li class="category__item">
          <a class="category__link" href="<?php echo esc_url(get_category_link($category->term_id)); ?>"><?php echo $category->name; ?></a>
        </li>
      <?php endif; ?>
    <?php endforeach; ?>
  <?php endif; ?>
</ul>

【コードの説明】

  • get_queried_object();
    WordPressの関数であり、カテゴリーページや投稿ページなどの特定のページで使用されます。
    この関数は、現在表示中のページの情報を取得するために使用されます。
$current_category = get_queried_object();
$current_slug = $current_category->slug;

上記のコードでは、get_queried_object() を使用して現在表示中のカテゴリーページの情報を取得して、それを変数 $current_category に代入しています。
そして、変数 $current_category から slugプロパティを使用して現在のカテゴリースラッグを取得しています。

if ($current_slug === $category->slug) {
  echo '<li class="category__item is-active">';
} else {
  echo '<li class="category__item">';
}

こちらのコードは現在のスラッグ「$current_slug」と、
foreachで出力されたカテゴリースラッグ「$category->slug」が一致すれば【is-active】クラスを付与する条件分岐のコードになります。

付与されたクラスに対して、スタイルを追加するコード

.is-active {
    background-color: #000;
    color: #fff;
}

このコードでは、【is-active】クラスに対して背景色が黒くなり、テキストの色が白くなるように設定しています。
必要に応じて、他のスタイルプロパティを追加または調整することもできます。

まとめ

以上の2つのコードを使用することで、スラッグが一致したカテゴリーをCSSで反転表示させることができます。
また、このコードを応用することによってタブ切り替えの実装なども可能になりますね。

カテゴリー情報を取得する方法については、以下の記事で紹介しています。

あわせて読みたい
  • この記事を書いた人

はぎ

43歳からWeb制作開始|フリーランス2年目| 税理士・公認会計士を目指すも挫折、27歳でトヨタ系自動車部品工場に勤務| 管理業務に関わるなか、ExcelVBAからプログラミングに目覚める| 現在は兼業コーダーとしてクラウドソーシング・制作会社からのお仕事をさせて頂いております| 時間と場所に縛られないライフスタイルを目指し鬼労働中| 柴犬好き🐕‍🦺

-Web制作, WordPress, カテゴリー&タグ