【WordPress】固定ページ編集画面でテンプレート名を取得する

【WordPress】固定ページ編集画面でテンプレート名を取得する



WordPressで固定ページ毎に異なるカスタムフィールドを設置したいと考えたのですが、どうにも現在編集している固定ページのテンプレート名を簡単に取得する方法が見当たらず。

いっそのこと、テンプレートを選択するセレクトフォームの選択値をjQueryで取得して、それに応じてdisplay:none;で隠す、ということも考えたのですが、WordPressの標準エディターがGutenbergに変わったことで、それも出来なくなりました。

クラシックエディタであれば固有IDがあるので、取得も簡単なのですが。

<select name="page_template" id="page_template">
	<option value="default" selected="selected">デフォルトテンプレート</option>	
	...
	...
	...
</select>

そこで何とか辿り着いた手段は、

$post_ID       = filter_input( INPUT_GET, 'post' );
$template_name = get_post_meta( $post_ID, '_wp_page_template', true );

になりました。

編集中のURLパラメータから投稿IDを取得し、カスタムフィールドの_wp_page_templateに保存されているページテンプレート名を取得する、という方法です。

ここで注意が必要なのは、デフォルトのページを選択した場合は、返り値がdefaultになります。
その他の場合は、xxx-page.phpが返ります。

今日はここまで

関連する記事



こちらはいかが?


コメントを残す