WordPressカスタム投稿タイプをカテゴリ・タグ毎にアーカイブ表示させるには

カスタム投稿タイプとは

カスタム投稿タイプはWordPressにおける独自の投稿タイプであり、WordPress毎に設置できます。
カスタム投稿タイプは既存の投稿や固定ページと分けて設置でき、管理画面における独自の名前付けをはじめカテゴリ・タグの設置など細かく設定できるので、一度作ってしまえば投稿者(クライアント等)にとって分かりやすく便利です。

カスタム投稿タイプを新規作成するには、テーマ内のfunction.phpにregister_post_typeを書き込む必要があります。
関数リファレンス/register post type | WordPress Codex 日本語版

カスタム投稿タイプ毎に、独自の「カテゴリ」と「タグ」を設定できます。
これらの「カテゴリ」と「タグ」は見かけのもので、実体は「カスタム分類(=カスタムタクソノミー)」です。
カスタム分類 | WordPress Codex 日本語版
カスタム投稿タイプ、カスタムタクソノミーについて整理してみた|free WordPress Theme Principle

カスタム投稿タイプに独自の「カテゴリ」「タグ」(カスタム分類)を設定するには、
function.phpにregister_taxonomyを追記します。
関数リファレンス/register taxonomy | WordPress Codex 日本語版

カスタム投稿タイプの「カテゴリ」「タグ」毎のアーカイブページを作成・表示

カスタム投稿タイプの「カテゴリ」や「タグ」毎のアーカイブページ(archive.php的なもの)が必要な場合、以下の作業が必要です。

taxonomy_{$taxonomy}.php という名前のファイルをテーマ内に作り、archive.php等と同様に内容を書き込んでいきます。
ここでの$taxonomyとは、’register_taxonomy’で設定した$taxonomy(Codex)であり(「{」と「}」は不要)、
分かりやすく書くと
taxonomy_カスタム分類名.php
です。
カスタム分類名をカスタム投稿タイプ名と混同しないよう注意。
ちなみに、カスタム分類名には「-(ハイフン)」を含まないほうが良さそうです。「_(アンダーバー)」はOK。
カスタムタクソノミーのアーカイブページで404エラー|WordPress日本語フォーラム

設置の例

例)
WordPress設置URL http://example.com/
カスタム投稿タイプ名「events」($custom_post_type)
カスタム分類名「events_cat」($taxonomy)
管理画面よりevents_catにカテゴリ「スポーツ」(スラッグ=「sports」)を追加

とした場合、

taxonomy-events_cat.php
を作り

http://example.com/events_cat/sports/
にアクセスすると、
カテゴリ「sports」に該当する記事のアーカイブが表示されるはず。

補足: パーマリンクのカスタマイズ

http://example.com/events_cat/sports/ (events_cat はカスタム分類名)

http://example.com/events/sports/ (events はカスタム投稿タイプ名)
と表記したい場合には、
function.php内のregister_taxonomyに
‘rewrite’ => array(‘slug’ => ‘events’)
と追記すればOKです。
カスタム分類のページの URL を変更する|webdesign leaves

西山
西山 寛之(にしやま ひろゆき)
1975年生まれ O型 | 愛媛大学法文学部卒業
レコードショップ運営~大利木材取締役[ ウェブ制作・運用/営業/CTO ]を経て、
2015年4月 パソラボ設立。
投稿日 カテゴリー Blog タグ , , .

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です