カスタム投稿タイプのカテゴリーリストを作る

世の中はセンター試験ですね。僕は盛大にこけましたが、結局どこの大学がーって話ではなくて何をしたいかなじゃないかなーとは思ってはいます(医学部とか所謂学歴フィルターがある特定の会社にこだわりがあるって話なら別なんでしょうけど)。

受験生はこんなサイト見てないとは思いますが二次試験も頑張ってください。以下本題です。

カスタム投稿タイプに「イベント」というものを作成し、それにカテゴリーでジャンル分けをします。今回やりたいことの仕様としては、

  • イベント全体のアーカイブページの作成
  • 各カテゴリでのアーカイブページの作成
  • これらのリンクをヘッダーに貼り付け
  • (ついでに)ジャンルを新規追加してもokに

今回の備忘録としてのメインは新規カテゴリを追加しても大丈夫な仕様にすることです。(今回の仕事は本当は用意しなくてもいいんだけど後々テーマを配布したいときの勉強用にやってみました)

通常の投稿にはカテゴリ(と今回は扱わないタグ)機能があります。これらをカスタム投稿タイプで用いるには「タクソノミー」という機能を使います。

使用するのはおなじみ「Custom Post Type UI(通称CPT UI)」。使い方は詳細に解説してくれているサイトが書いてあるので省きます。カテゴリーを作成したらこれらをリストで書きだせるようにします。

$terms = get_terms( 'タクソノミー名' );

echo '<ul>';

foreach ( $terms as $term ) {

    // この $term はオブジェクトなので、$taxonomy を指定しなくてよい。
    $term_link = get_term_link( $term );
   
    // エラーなら次のタームへ進む。
    if ( is_wp_error( $term_link ) ) {
        continue;
    }

    // リンクを取得できたのでプリントアウトする。
    echo '<li><a href="' . esc_url( $term_link ) . '">' . $term->name . '</a></li>';
}

echo '</ul>';

リファレンスのまんまですが。本当はもっと詳細に書こうと思ったんですけど気力がないのでまた今度…