WordPress/URL/独自のURLを使う

WordPress/URL/独自のURLを使う

カスタマイズしてサイトを作る場合は独自の URL を使うことがほとんどである。しかし、これは終わらない旅になる可能性が高いので、できるなら WordPress の標準に従ったほうがいい。

そのやり方。

基本

テーマ内の functions.php にこのように書く

function hogehoge_url(){
    add_rewrite_rule('my-blog/hoge/?$', 'index.php?page_id=123', 'top');
}
add_action('init', 'hogehoge_url');

WordPress ではこのように書いて独自の URL に対して、パラメータ付きで index.phppage_id 指定で呼び出すことで任意のページに結びつける。 うけつける URL の部分は正規表現で書ける。

書いた後に、WordPress 管理画面の 設定パーマリンク設定 を「基本」以外にして保存するとこの設定が反映される。 この記述を変更した場合は、設定を変えなくても設定を保存しないと変更が反映されないという裏技的操作が必要になる。

パラメータ付きURL

このように記述する。

add_rewrite_rule('my-blog/hoge/([0-9]+)$', 'index.php?page_id=123&hoge=$matches[1]', 'top');

キャプチャした内容を、変換後のパラメータで matches という連想配列っぽい記述で取り出すことができる。

それ Apache の mod_rewrite でもできるんじゃないの?

こんな記述しなくても、それ、mod_rewrite でできるんじゃないの?とも思う

WordPress はパーマリンクの設定が「基本」以外になっている場合 mod_rewrite を使うことになるのだが、 mod_rewrite でも同じように URL を制御することは可能である。

この場合内部のルーティング処理がまるごとカットされるので、それに依存する機能(パーマリンク系)が使えなくなる。

しかし、基本以外でやってしまった場合、内部のルーティング処理とかぶってしまって、意味不明な挙動になる。

なので、mod_rewriteURL を制御しようと思わないほうがよい。

wordpress/url/my_url.txt · 最終更新: 2021-10-21 19:26 by ore