カスタム投稿タイプ名+タームスラッグでパーマリンク表示【WordPress】

- WordPress -
2019.11.25
WordPress

WordPressでWebサイト開発中のこと。

カスタム投稿タイプカスタムタクソノミーを使って記事を作ってみたものの、仕様通りにパーマリンクをなかなか作れず時間を無駄にしました。

こういう↓パーマリンクを作りたかった時のメモ。

http://testsite.local/column/tag1/post_id

カスタム投稿タイプ名「コラム」/カスタムタクソノミーのターム「タグ1」のスラッグに記事id、いうパーマリンクを作りたい

結論から言うと、プラグイン「Custom Post Type Permalinks」を使えばこのようなパーマリンクを作れました。

方法の前にまず、本記事の前提となる設定です。適宜ご自分の設定に読み替えてください。

①プラグイン「CPT UI」で「コラム(column)」というカスタム投稿タイプを作ってある。

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

②「コラムタグ(column_tag)」というカスタムタクソノミーを作ってある。

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

③コラムタグに「タグ1」という名前で「tag1」というスラッグを持たせたタグを作ってある。

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

④パーマリンクの設定は以下の通り「カスタム構造」の状態とする。

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

さて、この状態で、コラムタグを紐づけたコラム記事を作成すると、パーマリンクは以下のようになってしまいました。

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

http://testsite.local/column/109/

カスタム投稿タイプ名の直下が投稿id、というパーマリンクになってる

これは望んでない結果でした。どこがダメだったかというと、繰り返しになりますが

カスタムタクソノミーのターム(タグ1)のスラッグ(tag1)が入ってない

という点。どうしても「タグ1に属しているカスタム投稿タイプの記事ですよ」というのをパーマリンクで示したかったんですね。

つまり、この時の記事詳細ページURLの表示を、以下のようにしたかったわけです。

http://testsite.local/column/109/ ではなく、

http://testsite.local/column/tag1/109 にしたい

{カスタム投稿タイプ名}/{タームスラッグ}というパーマリンクを表示する設定方法

Custom Post Type Permalinksをインストール・有効化

これは普通にインストール・有効化すればOKです。

パーマリンク設定画面で設定をする

「設定」ー「パーマリンク設定」をクリック

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

下の方へスクロールしていくとインストールしたプラグインの効果で「カスタム投稿タイプのパーマリンク設定」という設定欄が増えています。

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

デフォルトでは、上記のように「/column/%post_id%/」のようになっているかと。

これを、「/column/%カスタムタクソノミー名%/%post_id%/」のように書き直します。今回の例だと、「/column/%column_tag%/%post_id%」ですね。

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

忘れずに設定を保存。

これでコラムの投稿ページのパーマリンクを見ると、しっかりと「カスタム投稿タイプ名/タームのスラッグ/...」というパーマリンクを実現できました。

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

UdemyでサクッとWordPressを学習してみる