 WordPressで作成しているサイトに独自の機能のページを追加したければ、固定ページを作成して対応するテーマファイルにPHPプログラムを記述するのが手軽だ。
WordPressで作成しているサイトに独自の機能のページを追加したければ、固定ページを作成して対応するテーマファイルにPHPプログラムを記述するのが手軽だ。
 しかし、不特定多数のページを持つ機能を作るのは少々苦労する。標準状態のWordPressでは、「/mypage/subpage」のようなURLにアクセスしたとき、「mypage」の子ページである「subpage」という固定ページのURLと認識されてしまい、該当する固定ページが存在しなければエラーになってしまうのだ。
 「/mypage?subpage」のようなクエリパラメータ付きURLなら、「mypage」という固定ページへのアクセスとして扱われるが、検索エンジンによる重要度の判定で不利になる可能性があるし、見た目にも格好悪い。
 階層下URLを持つ固定ページを作りたければ、テーマディレクトリの「functions.php」にフィルタ処理を記述して、URLの認識ルールを追加してやろう。ついでに「query_vars」でパラメータ項目の定義を追加しておけば、追加のURLの部分を「get_query_var」関数で手軽に取得できるようになるぞ。
function query_vars_pathinfo($vars){
	$vars[] = "path_info";
	return $vars;
}
add_filter('query_vars','query_vars_pathinfo');
function my_page_permalink_pathinfo($rules){
	return(array('mypage/(.+)'=>'index.php?pagename=mypage&path_info=$matches[1]')+$rules);
}
add_filter('rewrite_rules_array', 'my_page_permalink_pathinfo');
固定ページに不特定多数の子ページを持たせるには、functions.phpに上記のように記述しよう。
 「query_vars」フィルタに割り当てた関数では、「path_info」というカスタムクエリ変数を登録。「rewrite_rules_array」フィルタでは、「mypage/」以下のURLを「mypage」という固定ページのURLへとして認識させるルールを登録している。「path_info」や「mypage」の部分は適宜変更しよう。
 あとはテーマディレクトリに「page-mypage.php」のようなファイルを作り、ページの生成処理を記述すればいい。このPHP内では、「get_query_var('path_info')」のようにすることで「mypage/」より後ろのパスを取得できる。「$_SERVER['REQUEST_URI']」などから取得するより手軽だ。
処理を記述したfunctions.phpをアップロードして、管理画面の「設定」→「パーマリンクの設定」で「変更を保存」ボタンを押すと、URLの認識設定が反映されるぞ。


 全世界1,000万以上ダウンロード超え!水分補給サポートアプリ最新作『Plant Nanny 2 - 植物ナニー2』が11/1より日本先行配信開始中
全世界1,000万以上ダウンロード超え!水分補給サポートアプリ最新作『Plant Nanny 2 - 植物ナニー2』が11/1より日本先行配信開始中 たこ焼きの洞窟にかき氷の山!散歩を習慣化する惑星探索ゲーム『Walkr』がアップデート配信&6/28までアイテムセール開始!
たこ焼きの洞窟にかき氷の山!散歩を習慣化する惑星探索ゲーム『Walkr』がアップデート配信&6/28までアイテムセール開始! 【まとめ】仮想通貨ビットコインで国内・海外問わず自由に決済や買い物ができる販売サイトを立ち上げる
【まとめ】仮想通貨ビットコインで国内・海外問わず自由に決済や買い物ができる販売サイトを立ち上げる WordPressの固定ページを「.html」付きのURLにすることってできないの?
WordPressの固定ページを「.html」付きのURLにすることってできないの? WordPressの画像表示ページのURLが気に入らない。書式って変えられないの?
WordPressの画像表示ページのURLが気に入らない。書式って変えられないの? WordPressの記事URLの書式を変更したいけど、前のURLが404になっちゃうのは困る…
WordPressの記事URLの書式を変更したいけど、前のURLが404になっちゃうのは困る… WordPressのRSSやAtomのURLって変更できないの?
WordPressのRSSやAtomのURLって変更できないの? WordPressでURL用の記事名を付け忘れたときに長い名前にならないようにしたい
WordPressでURL用の記事名を付け忘れたときに長い名前にならないようにしたい WordPressで本文中のiframeなどのタグが消えちゃって困る
WordPressで本文中のiframeなどのタグが消えちゃって困る

