Wordpressテンプレート
ユーザーがあるページを要求すると、コアの WordPress コードにはどのテーマテンプレートでページを表示するかのロジックがあります。上の画像は テンプレート階層の詳細で、ロジックを図解しています。
カスタムテンプレート — ページにカスタムテンプレートが割り当てられていれば、WordPress はファイルを探し、見つかればこれを使用します。
page-{slug}.php — 見つからなければ、WordPress はページのスラッグで特殊化されたテンプレートファイルを探し、見つかればこれを使用します。
page-{id}.php — 見つからなければ、WordPress はページの ID で特殊化されたテンプレートファイルを探し、見つかればこれを使用します。
page.php — 見つからなければ、WordPress はテーマのデフォルトのページテンプレートを探し、見つかればこれを使用します。
index.php — 見つからなければ、WordPress はテーマの index ファイルを使用します。
(注意: WordPress で定義するテンプレートには paged.php もあります。これは投稿タイプ「Page」では使用されません。アーカイブの複数ページを表示する際に使用されます。)
カスタムテンプレートをプラグインから切り替える方法
カスタムテンプレートを用意する
既存のページテンプレートをコピーして別名で保存する
cp wp-content/themes/twentysixteen/page.php wp-content/themes/twentysixteen/page-1.php
コピーしたファイルを編集して、冒頭のコメントにTemplate Nameを追記する
code:page-1.php
<?php
/**
* Template Name: Full Width Page
*/
get_header(); ?>
<p>template changed</p> <!-- とりあえず変更されたことを目立たせる -->
プラグイン内で、ページ属性に、テンプレート名を指定することで
code:layout-optimizer.php
//2はページID
//カスタムページテンプレート
update_post_meta(2, "_wp_page_template", "page-1.php");
// デフォルトのページに戻す
update_post_meta(2, "_wp_page_template", "");
参考
手動で設定する場合
デフォルトのテーマのページテンプレートは一つしかないので、最初ページ属性にテンプレート欄がでてこない
先にテンプレートファイルを置いてやる必要がある