WordPress上の任意のページを、適当なphpファイルで表示する方法

今日は久しぶりにWordPressをいじりました。いやー、WordPressって本当にいいもんですね~。

「WordPressを外から使う」とかで検索すると wp_load.php を読み込んでWordPressの関数を使うってのが引っかかりますが、今日やったのはWordPressの中のとあるページを、WordPressの外でそのまま表示するです。

まぁ、wp_load.php とやってることは変わらないのですが。やり方はまずWordPressのフロントコントローラー(index.php)を任意の場所にコピーして、$_GETをクリア、表示したいページに対応するパラメータを渡して、wp-blog-header.phpへのパスを正しく通す、これだけです。ファイル名は index.php でも store.phpでも何でも大丈夫です。

$_GET = array();
$_GET[‘post_type’] = ‘store’;

/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . ‘/path/to/wp-blog-header.php’ );

上の例ではカスタムポストタイプ store のアーカイブページを表示する設定ですので、archive-store.phpまたは該当するテンプレートファイルを読み込んでページが表示されます。

尚、$_GETをクリアしてますので、このままではページングは動きません。また重複コンテンツとならない様に気を付ける必要があります。