functions.phpにフィルタを記述するか、プラグインを導入すれば、URLの認識ルールを書き換えられるぞ。
WordPressでは、通常の記事とは別に「固定ページ」を作成可能だ。通常の記事のURLを記事IDや年月日を使ったものにしていても、固定ページのURLはスラグ(識別名)のみからなるシンプルで分かりやすいURLになるので、プロフィールなど特別なページを作るのに適している。
しかし、元々静的なHTMLファイルで作っていたサイトをWordPressで再現したい場合や、静的なHTMLファイルで出来ているように見せかけたい場合などは、スラグ名だけでなく後ろに「.html」を付けたURLにしたいところだ。
ページのスラグ自体に「.html」を付ければいいのではないかと思うかもしれないが、スラグには「.」は使えず、「-」に変換されてしまうので上手く行かない。
どうしても固定ページのURLに「.html」を付けたければ、テーマディレクトリの「functions.php」にフィルタ処理を追加してやろう。URLの認識ルールを追加すれば、「.html」付きのURLを固定ページのURLとして認識させられるぞ。
また、「.html on PAGES」というプラグインでも同様のカスタマイズが可能だ。
・.html on PAGES - WordPress Plugins
function my_page_permalink_rule($rules){ return(array('(.?.*[a-z].*)\\.html$'=>'index.php?pagename=$matches[1]')+$rules); } add_filter('rewrite_rules_array', 'my_page_permalink_rule'); function my_page_permalink($link,$pid=0){ return($link.'.html'); } add_filter('_get_page_link','my_page_permalink',10,2);
このようなスクリプトをfunctions.phpに追加すれば、固定ページのURLに「.html」を付けられるぞ。上のフィルタではURLの認識ルールを追加し、下のフィルタではページURLの生成処理に割り込んで「.html」を付け足している。
処理を記述したfunctions.phpをアップロードして、管理画面の「設定」→「パーマリンクの設定」で「変更を保存」ボタンを押すと、カスタマイズしたURLが認識されるようになる。