WordPressサイトのURLを隅々まで徹底カスタマイズ!
Webサイトを作る際には、内容やデザインだけでなく、ページを識別するURLにも気を配りたい。不格好なURLのサイトは見る気を無くしてしまう人がいるかもしれないし、やたら長いURLなどは掲示板などで紹介することも躊躇われてしまう。
定番ブログエンジンの「WordPress」の場合、標準の「パーマリンクの設定」画面では記事ページやタグ、カテゴリページなど一部のページのURLしかカスタマイズできないが、テーマディレクトリの「functions.php」にフィルタ処理を記述すれば、多くの部分のURLをカスタマイズできる。また、記事や添付ファイルを識別する「スラグ」の生成方法なども改造可能だ。
この特集では、これまでに紹介してきたWordPressのURLカスタマイズに関するテクニックを一挙に紹介するので、ぜひ活用してWordPressサイトのURLをカスタマイズし尽くそう。
ページを識別する「スラグ」を制御
WordPressでURL用の記事名を付け忘れたときに長い名前にならないようにしたい
URL中で記事の識別のために使われる「スラグ」は記事のタイトルから生成されるが、日本語のタイトルから生成されたスラグを含むURLは非常に長くなってしまう。記事の公開前に簡潔な英数字の名前に変更してやりたいところだが、変更を忘れたまま公開してしまうミスもありがちなので、自動生成処理を上書きして日本語のスラグが生成されないようにしておこう。
WordPressに日本語ファイル名の画像をアップしたときにページURLが日本語になるのが嫌
アップロードした画像の表示ページのURLにもスラグが使われるが、こちらはファイル名やEXIF情報から自動生成され、編集画面で変更することはできない。日本語の名前のファイルをアップロードしたときに日本語を含むURLにならないようにしたい場合などは、添付ファイル情報の保存前に呼び出されるフィルタに書き換え処理を追加してやろう。
WordPressのスラグ入りURLは長すぎる。短いURLでもアクセス出来るようにしたい
WordPressの初期設定である「/?p=」の後に記事IDが付いた形式のURLは、URLの書式をカスタマイズしていても、記事のURLへ転送される短縮URLとして機能する。
日本語スラグを含む長いURLを使うことにしたが、人気記事欄や最近の記事欄などの記事リストでデータ量がかさむのが気になるという場合などは、こちらのURLを埋め込むといいだろう。
添付画像のURLもカスタマイズ
WordPressの画像表示ページのURLが気に入らない。書式って変えられないの?
記事に添付した画像のフルサイズ版を表示するためのURLは、初期状態では記事のURLの後ろに「/」に続いて画像の識別名を付けたURLとなるが、記事のURLに「.html」を付けていると「/2016/04/postname.html/image_001」のようなおかしなURLになってしまったりして格好悪い。functions.phpにフィルタを記述して、好みの書式にカスタマイズしよう。
WordPressの画像アップロード先ディレクトリを変更する方法って無いの?
初期設定のWordPressでは、アップロードされたファイルは「wp-content/uploads」というディレクトリの下に保存されるが、長ったらしくて格好悪い。「wp-config.php」に設定を記述すれば、好きなディレクトリに変更できるぞ。
固定ページやフィードのURLもカスタマイズ
WordPressの固定ページを「.html」付きのURLにすることってできないの?
記事とは別に作成できる「固定ページ」は、スラグ名だけのシンプルなURLになるが、「.html」が付いたURLの方がいいという人もいるだろう。既存のサイトをWordPressで作り直す場合は、URLが変わるとリンク切れが発生してしまうので、従来と同じURLを再現できるかは切実な問題だ。
固定ページのURLの書式も、管理画面では変更できないが、functions.phpにフィルタ処理を記述すればカスタマイズできるぞ。
WordPressの固定ページに不特定多数の階層下URLのページを作る事ってできない?
固定ページは親ページを設定して階層化することで「/parentpage/childpage」のようにURLを階層化することができるが、テーマファイルに埋め込んだPHPプログラムで不特定多数のページを生成したい場合には使えない。このようなURLを「parentpage」ページのURLとして認識させるには、functions.phpにフィルタを追加しよう。
WordPressのRSSやAtomのURLって変更できないの?
新着記事の情報を配信するRSSやAtomは、「http://example.com/rss」のような拡張子無しのURLになっている。ユーザーの目に触れる機会は少ないので、無理に見栄えを整える必要は無いかもしれないが、他のブログエンジンからWordPressに移行するときは、URLが変わると既存の読者が情報を取得できなくなってしまう。従来のURLでアクセスできるようにfunctions.phpにフィルタ処理を追加しておこう。
古い書式のURLでもアクセスできるようにする
WordPressの記事URLの書式を変更したいけど、前のURLが404になっちゃうのは困る…
パーマリンク設定で記事のURLの書式を変更すると、古い書式のURLではアクセスできなくなってしまうため、しばらく運営してからURLが気に入らないと思い始めても、変更に踏み切れないことがある。functions.phpに処理を記述すれば、古い書式の記事URLを新しい書式のURLへの転送URLとして機能させることもできるぞ。