【wordpress】カスタム投稿タイプのパーマリンク

全体のパーマリンク設定

予めカスタム投稿タイプにも対応できるように設定しておく。
前提としてここを間違うと何をやっても機能しない。

  • 「基本」を選択→404 not found
  • 「数字ベース」を選択→アーカイブページはカスタム投稿用のものに繋がらない、singleページはURLが変。
  • その他はOK。カスタム投稿で「/%category%/%postname%/」としても問題ない。

まとめると、

  • 「日付と投稿名」「月と投稿名」「投稿名」いずれかを選択
  • もしくはカスタム構造で最後の部分に「%postname%(投稿名)」を指定

つまり、個別ページパーマリンクの最後を投稿名で終るように設定すると機能する。(多分)

■カスタム投稿タイプのパーマリンク構造

例として、次のようなカスタム投稿タイプ+カスタムタクソノミーを想定する

イベント(slug:events) // 投稿タイプ
└コース(slug:course) // タクソノミー
└講師(slug:instructor) // タクソノミー
└地域(slug:area) // タクソノミー

カスタム投稿タイプに属するアーカイブと、そのURL

  1. イベントのポスト全てを表示するアーカイブページ(通常投稿タイプのindexやarchiveに相当)
    http://○○○○/events
  2. コース別のポストを表示するアーアカイブページ
    http://○○○○/course/コース名
  3. 講師別のポストを表示するアーアカイブページ
    http://○○○○/instructor/講師名
  4. 地域別のポストを表示するアーアカイブページ
    http://○○○○/area/地域名

上記4つが投稿タイプ「イベント」に属するアーカイブページ。

これらはリクエストがあると、それぞれ下記名称のアーカイブテンプレートを探しにいく。

  1. archive-events.php
  2. taxonomy-course.php
  3. taxonomy-instructor.php
  4. taxonomy-area.php

これらの中身は通常ポストのアーカイブテンプレートと同じ内容で問題無く表示され、クエリーなど使ってポストタイプを指定する必要はない

カスタム投稿タイプ用のテンプレートページがない場合:
archive.phpで表示される。
表示内容は通常投稿タイプと同様なため、カスタム投稿タイプの設定内容は反映されない(当たり前か)。
(予めコンテンツ内容をポスト投稿タイプで切り分けておけばちゃんと見えるようになるけど)

コメントを残す

メールアドレスが公開されることはありません。