WordPressの固定ページを「.html」付きのURLにすることってできないの?

functions.phpにフィルタを記述するか、プラグインを導入すれば、URLの認識ルールを書き換えられるぞ。

001WordPressでは、通常の記事とは別に「固定ページ」を作成可能だ。通常の記事の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」を付け足している。


001

処理を記述したfunctions.phpをアップロードして、管理画面の「設定」→「パーマリンクの設定」で「変更を保存」ボタンを押すと、カスタマイズしたURLが認識されるようになる。

2016年05月01日 05時45分
©教えて君.net All Rights Reserved.