WordPressの設定備忘録をちゃんと書くの、もしかしてこれが初めてじゃないか…? 投稿記事の構造についてもすごく悩んだけれど、そこ以上に頭を悩ませたのはカテゴリーページのURLだったなぁ。
今回は「設定>パーマリンク設定」について。
あくまで自分のための備忘録なので、正確かつ詳しい解説をお探しの方は他を当たってください。
設定してみる
パーマリンクというのは、ドメイン以下の階層構造のことなわけですが、初期設定のままだとそれが何のページなのか分からないのでサクッと変えます。
ちなみに、「共通設定」の項目には6つの候補があります。
基本 | https://ドメイン/?p=123 |
---|---|
日付と投稿名 | https://ドメイン/2019/05/10/sample-post/ |
月と投稿名 | https://ドメイン/2019/05/sample-post/ |
数字ベース | https://ドメイン/archives/123 |
投稿名 | https://ドメイン/sample-post/ |
カスタム構造 | https://ドメイン/自由指定 |
post_idタイプ(基本・数字ベース)は同じURLにならないものの、記事内容の盛り込みができないので選択肢から除外。日付タイプ(日付と投稿名・月と投稿名)は日記向きなので、これも除外。「投稿名」は階層表示できないので除外。
――ということで、選ぶは「カスタム構造」!
日付情報を盛り込むと長くなりすぎるので、私はシンプルに「/カテゴリ名/投稿名.htm」で落ち着きました。パッと見て投稿数が分かるように、投稿名の中身は「記事番号_投稿内容-を-端的に」形式で手動管理してます。
カテゴリ記事一覧は?
カテゴリーベース項目の初期設定(空欄)だと、URLが「/category/カテゴリ名」になります。
でも、私は記事リンクに合わせてカテゴリ記事一覧も「/カテゴリ名」で表示させたい…! みんなだってしたいはず!
冗談はさておき。実はcategory無しのアドレスでも表示自体はされるんですが、これだと同一内容のアドレスが2つ存在することになってしまうので、避けるべきじゃないかと私は思います。
設定自体は簡単で、「.(半角ドット)」を設定すればcategoryが省略できました。ただ、これにはちょっとした落とし穴があるのでご注意ください。
子カテゴリの一覧ページが404になる
初めのうちは前述と少し違うパーマリンクを設定していたんですが、子カテゴリの記事一覧ページが404状態(ページが見つかりません)になったので、そのときのレポートもチラリと。
▼エラー発生時の設定
投稿>カテゴリー :親子まで階層化
設定>パーマリンク設定 :
共通設定>カスタム構造「/%category%/%postname%」
オプション>カテゴリーベース「.」
カスタム構造の設定内容に、拡張子がありません。
WPサイトの多くは拡張子ナシで運営されているので、発生原因も解決方法も検討がつかなかったんですが、調べてみたらこちらの記事を発見。
→ wordpress 子カテゴリーの一覧ページが表示されない場合の対処法 | YIKES LIFE!
お察しの方もいるでしょうか。
そう、拡張子をつけるだけでいいのです。
▼変更した設定
設定>パーマリンク設定 :
共通設定>カスタム構造「/%category%/%postname%.htm」
今回のエラー発生原因は分からないままですが、起きなくなったならそれでいいので割愛します。
元の設定だと、見た目にも「子カテゴリなのか記事名なのかハッキリしない」ですから、404になっても致し方ない気はしますね。
まとめ
▼最終的な設定
設定>パーマリンク設定 :
共通設定>カスタム構造「/%category%/%postname%.htm」
オプション>カテゴリーベース「.」
htmlじゃないのは、私がhtm派ってだけの理由です。
パーマリンクの構造をどうするか問題はSEOの観点(記事内容をURLからある程度推測できる作りにする)でも大事ですけど、結局は気持ちの問題。
なので、「子カテゴリを使いたい、カテゴリーベースを省略したい」と条件が揃ったときのみ「拡張子つける・つけない」を気を付けたらいいんじゃないかと思います。
今回はこれにて!