wp_list_categories()

関数の概要

wp_list_categories() は、WordPressテーマ内で投稿のカテゴリーリストを表示するために使用される関数です。この関数は、ループ外でも使用でき、特定の階層構造に従ったカテゴリーリストを生成します。カテゴリーリストは、訪問者が特定のトピックやセクションに簡単にアクセスできるようにするために非常に重要です。主にサイドバーやフッターなどにカテゴリーのナビゲーションメニューを表示するために使用されます。

パラメータの説明

wp_list_categories( $args )

  • $args (array|string)(省略可能):カテゴリーリストをカスタマイズするための引数の配列またはクエリ文字列。主な引数は以下の通りです:
  • show_option_all (string):「すべてのカテゴリー」を表示するリンクのテキスト。デフォルトは表示しません。
  • orderby (string):カテゴリーの並び順を指定します。例:'name', 'count', 'ID' など。デフォルトは 'name' です。
  • order (string):並び順を指定します。'ASC'(昇順)または 'DESC'(降順)。デフォルトは 'ASC' です。
  • show_count (bool):各カテゴリーの投稿数を表示するかどうか。デフォルトは false です。
  • title_li (string):カテゴリーリストの前に表示されるタイトルのテキスト。デフォルトは __( 'Categories' ) です。'' を指定するとタイトルが表示されません。
  • exclude (string):表示しないカテゴリーのIDをカンマ区切りで指定します。
  • include (string):表示するカテゴリーのIDをカンマ区切りで指定します。
  • echo (bool):true ならカテゴリーリストを表示し、false ならカテゴリーリストを返します。デフォルトは true です。
  • その他多数の引数がありますが、これらが主なものです。

使用例

以下は、wp_list_categories() 関数を使用してカテゴリーリストを表示する基本的な例です:

<ul>
    <?php wp_list_categories(); ?>
</ul>

特定のタイトルを表示しないようにする例:

<ul>
    <?php wp_list_categories( array( 'title_li' => '' ) ); ?>
</ul>

特定のカテゴリーを除外する例:

<ul>
    <?php wp_list_categories( array( 'exclude' => '1, 2, 3' ) ); ?>
</ul>

カテゴリーごとに投稿数を表示する例:

<ul>
    <?php wp_list_categories( array( 'show_count' => true ) ); ?>
</ul>

カテゴリーを昇順または降順で並び替える例:

<ul>
    <?php wp_list_categories( array( 'orderby' => 'count', 'order' => 'DESC' ) ); ?>
</ul>

関連する関数

  • get_categories(): カテゴリーのリストを取得し、返しますが、表示はしません。wp_list_categories() 関数と異なり、カテゴリーリストを変数に格納するために使用されます。
  • wp_get_archives(): 投稿のアーカイブリストを表示するために使用されます。カテゴリーリストと似た形式でアーカイブリストを生成します。
  • wp_nav_menu(): カスタムナビゲーションメニューを表示するために使用されます。管理画面で設定されたメニューを表示するのに便利です。

カテゴリーリストのカスタマイズ

カテゴリーリストのスタイルや構造をカスタマイズするために、CSSクラスやカスタムHTMLを追加することができます。以下は、CSSクラスを追加してカテゴリーリストをカスタマイズする例です:

<ul class="custom-category-list">
    <?php wp_list_categories( array( 'title_li' => '', 'before' => '<li class="custom-category-item">', 'after' => '</li>' ) ); ?>
</ul>

カスタムウォーカーの使用

さらに高度なカスタマイズを行うために、Walker_Category クラスを拡張してカスタムウォーカーを作成することができます。以下は、カスタムウォーカーを使用してカテゴリーリストをカスタマイズする例です:

class Custom_Walker_Category extends Walker_Category {
    // カスタムウォーカーのメソッドをオーバーライドしてカスタマイズ
}

<ul>
    <?php wp_list_categories( array( 'walker' => new Custom_Walker_Category() ) ); ?>
</ul>

このようにすることで、カテゴリーリストの出力を完全にカスタマイズできます。

wp_list_categories() 関数を使用することで、テーマのテンプレートファイル内で投稿のカテゴリーリストを簡単に表示することができます。これにより、訪問者が特定のトピックやセクションにアクセスしやすくなり、サイトのナビゲーションが向上します。