[wp]カスタム投稿を特定階層配下に設置する

CPT UIでの話。

やりたいこと

こんなURLだったとして

https://sample.jp/

「custompost」というカスタム投稿を、URL直下でなくこんな感じに階層の下に設置したい。

https://sample.jp/example/custompost

これをやっていく。

やっていく

前述の形でやっていくとして。

まず「基本設定」を記入。
「投稿タイプスラッグ」に「custompost」と入れる。

ラベルは任意。

次に「設定」。

「アーカイブあり」を「True」にする。
「アーカイブURLに使うスラッグ」を「example/custompost」とする。
これでアーカイブページが階層化される。

末尾に「/」を入れない

「カスタムリライトスラッグ」も「example/custompost」とする。
これで投稿ページが階層化される。

これでOK。

テーマファイルについて

「投稿タイプスラッグ」に紐づく。

なので、上記の例だと「archive-custompost.php」「single-custompost.php」になる。

各スラッグが異なる場合

基本設定のスラッグはwp内部で使用するスラッグだと考えるといい。
ここだけ設定すれば、URLも同じスラッグで構成される。

「設定」タブ内のスラッグ2種は、アクセス時に影響する。
つまり、URLに表示されるものを設定している。

ということで、今回記入した3つはそれぞれ異なる内容だったとしても問題ないんだけど、他のページ、カスタム投稿などと競合して変になっても仕方ないし見返す際に訳がわからなくなっても仕方ないので、同じものを書くのがいいですね。

競合について

カスタム投稿でこれを作った。

https://sample.jp/example/custompost

じゃあこれは?

https://sample.jp/example

固定ページとカスタム投稿のスラッグが被るとエラーになったりするが、階層化した場合のその階層自体はどういう扱いになるのか、という話。

これは問題なく、固定ページなりカスタム投稿なりで作ってしまって問題ない。

別階層の同スラッグを作りたい場合

カスタム投稿自体のスラッグはユニークだから、重複することはできない。

だから、以下のような階層で複数のカスタム投稿を作る想定だった場合。

https://sample.jp/example01/custompost
https://sample.jp/example02/custompost

「基本設定」の「投稿タイプスラッグ」に「custompost」と入れられるのは1つだけだから、両方に同じものを入れることはできないから、変えないといけない。

フロントではリライトスラッグが優先されるので、投稿タイプスラッグは重複しないことを優先すればいい。

だから、こんな感じにすると良さげ。

https://sample.jp/example01/custompost
→ example01_custompost

https://sample.jp/example02/custompost
→ example02_custompost

CPTUIは設定内容の書き換えができるから、まあやってみればいいと思います。

コメント

タイトルとURLをコピーしました