【WordPress】パーマリンクの設定方法とテンプレートファイルとの関係
2024.03.06
WordPressは現在、世界で一番使われているCMSです。
そのWordPressでサイトを作る上で重要になってくるのがパーマリンクです。
WordPressではこのパーマリンクをパーマリンク設定を通して様々な形に設定出来ます。
通常HTMLで構成されたWEBサイトの場合、URLが対象のファイルを指定してアクセスするという形です。
しかしWordPressの場合、パーマリンク設定を通っている為、どのURLがどのファイルにアクセスするのか一見わかりません。
今回はパーマリンクの設定・カスタマイズ方法、更にどのファイルにアクセスしているのかを各テンプレートファイルとの繋がりとして解説していきます。
◆WordPressに関する記事はこちら
パーマリンクとは
WordPress内のページ毎に設定されているURLその一部分がパーマリンクです。
WordPress内のURLのドメイン以下のパスは基本的にはパーマリンク設定で制御されています。
ただし、WordPress内でパーマリンクと言われると各ページのURLを指す事も多い為、各ページのURLをパーマリンクと認識していても問題は無いです。
パーマリンクの重要性
パーマリンクはWEBサイトを閲覧している場合、あまり目に入らないものです。
その為、あまりWEBに明るくない方が作るWEBサイトの場合パーマリンクがデフォルトのままの場合も多いです。
しかし、パーマリンクが正しく設定されていないWEBサイトはGoogleから正常なWEBサイトであると認識されないかもしれません。
◆詳しくはこちらを参照ください。
見やすいパーマリンクにすることで、WEBサイトを正常な状態にすることがとても重要だと思います。
パーマリンク設定
パーマリンクの設定はWordPressの管理画面から行えます。
サイドバーの「設定」の中にある「パーマリンク」を選択する事でパーマリンクを設定する画面が開かれます。
パーマリンク設定画面で設定出来るパーマリンクは6種類あります。
基本
WordPressがそれぞれの投稿に自動でつけている投稿IDがパーマリンクとなる設定です。
こちらのパーマリンクはカスタム投稿等の全ての種類の投稿が同じ形となっており、IDの数字が異なるだけです。
WEBサイト運用者もユーザーもどちらにとってもわかりにくい形となっております。
この種類が生きる場面はあまり有りませんが、デフォルトで選択されている状態となっています。
日付と投稿名
記事の投稿日と投稿名がパーマリンクとなる設定です。
「YYYY/MM/DD/投稿名」の形式でパーマリンクとなる為、投稿日が重要な投稿に対して有効になります。
こちらは、新着情報やお知らせ等の日付に意味のある投稿に使うと良いでしょう。
月と投稿名
日付と投稿名から日付を除いた「YYYY/MM/投稿名」がパーマリンクとなる設定です。
違いは日付をパーマリンクに含めるかどうかという部分の為、毎月必ず投稿するもの等に使うと効果的な設定です。
数字ベース
基本で使われている投稿IDをパラメータという形でなく、正規化されたURLという形でパーマリンクにする設定です。
パラメータを使っている場合Google等のシステムから同一ページと認識される事もある為
投稿IDを使いたい場合はこちらの設定がおすすめです。
投稿名等を考えなくて良い為、とりあえず投稿を公開したいWEBサイト等では使う機会があるのでしょう。
投稿名
各投稿で登録した投稿名をパーマリンクとする設定です。
投稿名は各投稿でマッチするものを自分で設定出来る為、管理しやすく更にどのようなページなのかわかりやすいパーマリンクを作成出来ます。
基本的にはこちらの設定を使ったほうが良いでしょう。
カスタム構造
この設定は他の5種とは異なり、自分でパーマリンク設定をカスタマイズ出来る設定です。
今まで紹介した5種で使われている内容に加えてカテゴリのslug等が選択出来ます。
その為、カテゴリがメインにあるようなWEBサイトの場合はこちらの設定でカテゴリのslugを入れたほうが良いと思います。
それぞれの利点を活かし最適なパーマリンクを考える場合はこちらの設定を使うと良いでしょう。
設定出来る値は以下です。
%year% |
年(YYYY) |
%monthnum% |
月(MM) |
%day% |
日(DD) |
%hour% |
時(hh) |
%minute% |
分(mm) |
%second% |
秒(ss) |
%post_id% |
投稿ID |
%postname% |
投稿名 |
%category% |
カテゴリslug |
%author% |
著者名 |
カスタム投稿別にパーマリンクを設定
前項でお話したパーマリンクの設定は全ての投稿に反映されます。
しかし、カスタム投稿毎にパーマリンク設定を変えたほうが良い場合があります。
そのような場合は「Custom Post Type Permalinks」というプラグインを導入する事で問題を解決出来ます。
このプラグインを導入すると、パーマリンク設定画面で6種のパーマリンクの設定の下に、「カスタム投稿タイプのパーマリンク設定」という項目が追加されます。
こちらの項目を設定する事で、カスタム投稿の種類別にパーマリンクを設定する事ができるようになります。
例外的パーマリンクの設定方法
基本的なパーマリンクの設定は、これまで解説してきたパーマリンクの設定方法で解決できたと思います。
しかし、WEBサイトのパーマリンクはこだわったサイトの場合や業務で制作する場合等は上記の方法で対応出来ない事があります。
そのような場合はfunctions.phpに記述する事でかいけつ出来ると思います。
今回はその一例を紹介いたします。
例)デフォルトの投稿のアーカイブのパーマリンクのみ「/archive」を追加したい場合
// 投稿のアーカイブページを作成し、パーマリンクにarchiveを追加する
function post_has_archive($args, $post_type)
{
if ('post' == $post_type) {
$args['rewrite'] = true; // リライトを有効にする
$args['has_archive'] = 'archive'; // 任意のスラッグ名
}
return $args;
}
add_filter('register_post_type_args', 'post_has_archive', 10, 2);
こちらのPHPコードをfunctions.phpに記述する事で、デフォルトの投稿のアーカイブが作成されパーマリンクに「/archive」を追加した状態となります。
このように個別にパーマリンクをカスタマイズしたい場合は、functions.phpにPHPコードを記述する事で実現できます。
パーマリンクがアクセスするファイル
HTMLで構成されたWEBサイトの場合、URLはアクセスするファイルを指定しています。
しかし、WordPressではパーマリンクからどのファイルにアクセスしようとしているのかがわかりにくくなっています。
これはWordPressのシステム上でどのファイルにアクセスする為のパーマリンクなのかを判断してアクセスしているからです。
WordPressでは、パーマリンクで指定された行き先に対応したテンプレートファイルが用意されています。
その中で優先度が決められており、優先度のより高いテンプレートファイルが使用されます。
そのファイル名の優先度を図にまとめました。
こちらの図では左側にあるテンプレートファイル名が優先度が高く、右にいくに連れ優先度が下がります。
また括弧で囲まれた文字列は、それぞれの括弧内の内容を記載した形となります。
緑色で書かれているファイル名がWordPressが推奨していたり、よく使用されるファイル名となっています。
この図に当てはまるようにテンプレートファイル名を設定する事でWordPress上でテンプレートファイルを使用する事が出来ます。
テンプレートファイルをカスタマイズする場合の注意点
前項で述べたとおり、WordPressはテンプレートファイルの名前に対して優先度をつけより優先度の高いファイルにアクセスします。
その為、自分がカスタマイズしたテンプレートファイルが優先度が低い場合カスタマイズが反映されない場合があります。
どんなに変更を加えても、画面に変更が反映されていない場合はカスタマイズを行うファイルが間違っている場合がありますので注意が必要です。
まとめ
WordPressにおけるパーマリンクは一見難しそうに見えますが、わかってしまえば設定する箇所は少なく
それなのに、思った通りのURLを生成出来る機能です。
どのパーマリンク設定がどのような場面で効果的なのかを考えていくことが大切です。
また、通常のHTMLで構成されたWEBサイトと異なり一度WordPressのシステムを通ってしまう為
どのファイルがどのURLと対応しているのか解りにくく感じてしまう方もいると思いますが、ルールはシンプルな形になっています。
ここまで紹介した内容は理解していなくてもWordPressでWEBサイトを運用することは可能です。
しかし、難しい内容ではない為これらの情報を習得し更にスマートなWEBサイトを作成してみてはいかがでしょうか?
関連