こんにちは、Ryohei(@ityryohei)です!

本記事では、WordPressでカテゴリーページやアーカイブページで表示中のカテゴリースラッグを取得する方法を紹介しています。

カテゴリーページやアーカイブページで表示中のカテゴリースラッグを取得するにはどうすればいいんだろう?

上記の疑問にお答えします。

では、解説していきます。

カテゴリーページとアーカイブページとは

WordPressのサイトでは、コンテンツをカテゴリーに分類することができます。カテゴリーは、特定のトピックやテーマに関連する記事をグループ化するための方法です。カテゴリーページは、特定のカテゴリーに属する記事を一覧表示するページであり、アーカイブページは、過去の日付に基づいて記事を一覧表示するページです。

カテゴリースラッグとは

WordPressでは、各カテゴリーに一意のスラッグが割り当てられます。スラッグは、カテゴリーの識別子として機能し、URLの一部として使用されます。例えば、newsというカテゴリーのスラッグがnewsであれば、そのカテゴリーのページのURLはexample.jp/category/news/となります。

カテゴリーページやアーカイブページでカテゴリースラッグを取得する方法

WordPressでは、カテゴリーページやアーカイブページで表示中のカテゴリースラッグを取得する方法はいくつかありますが、最も一般的な方法はget_queried_object()関数を使用する方法です。

<?php

$category = get_queried_object();

if (is_category() || is_archive()) {
    $category_slug = $category->slug;
    echo "現在表示中のカテゴリースラッグは: " . $category_slug . "です。";
}

このコードでは、get_queried_object()関数で現在のクエリオブジェクトを取得し、それがカテゴリーページやアーカイブページであるかどうかをis_category()is_archive()関数で確認します。関数結果に該当するページであれば、取得したカテゴリーオブジェクトからスラッグを取得し、表示します。

カテゴリースラッグを取得してアクティブクラスを追加する

カテゴリーページやアーカイブページで表示中のカテゴリースラッグを取得する目的として、カテゴリー一覧のリンクにアクティブクラスを追加するなどがあります。

以下のコードは、WordPressのカテゴリーリストを表示し、表示中のカテゴリースラッグを取得して、そのカテゴリーがアクティブであればactiveクラスを追加するサンプルです。

<ul>
    <?php
    $current_category_slug = '';
    $category = get_queried_object();
    if (is_category() || is_archive()) {
        $current_category_slug = $category->slug;
    }
    
    $categories = get_categories();
    foreach ($categories as $cat) {
        $class = '';
        if ($cat->slug === $current_category_slug) {
            $class = 'active';
        }
        echo '<li class="' . $class . '"><a href="' . esc_url(get_category_link($cat->term_id)) . '">' . $cat->name . '</a></li>';
    }
    ?>
</ul>

このコードでは、まず表示中のカテゴリースラッグを取得し、各カテゴリーのループ中に現在のカテゴリースラッグと比較します。一致するカテゴリーが見つかった場合、そのカテゴリーにactiveクラスが追加されます。

WordPressのテンプレートファイルにこのコードを挿入することで、カテゴリーリストにアクティブクラスが自動的に付与されます。アクティブクラスに独自のスタイルを定義することにより、ユーザーが現在閲覧しているカテゴリーを視覚的に認識しやすくすることがが可能です。

最後に

WordPressでは、カテゴリーページやアーカイブページで表示中のカテゴリースラッグを取得するための方法が用意されています。get_queried_object()関数を使用して現在のクエリオブジェクトを取得し、その中からカテゴリースラッグを抽出することで、必要な情報を取得できます。これにより、カテゴリーに基づいた動的なコンテンツの表示や条件付き処理が容易になります。

WordPressの柔軟性と強力な機能を活用して、サイトのコンテンツをより効果的に管理し、ユーザーにとって使いやすいエクスペリエンスを提供しましょう。

以上、WordPressのカテゴリーパージやアーカイブページで表示中のカテゴリースラッグを取得する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / ブロガー

福岡のWeb制作会社に務めるWebエンジニアです。エンジニア歴は10年程で、好きな言語はPHPとJavaScriptです。本サイトは私がインプットしたWebに関する知識を整理し、共有することを目的に2015年から運営しています。Webに関するご相談があれば気軽にお問い合わせください。