前提
固定ページテンプレートファイルpage-〇〇.php
は、本来は名前の通り固定ページの雛形なので、共通のレイアウトを作って、テータを流し込む時に使うものなのですが、実際には開発や管理上の都合から1ページ作るごとに固定ページテンプレートを作ってしまい、テーマフォルダの中に増えすぎて管理しづらい…となった経験はありませんか?
今回は、そんな時にフォルダに固定ページテンプレートファイルをすっきり収納する方法をやっていきます。
テーマフォルダ直下に任意のフォルダを作る
まずはテーマフォルダ直下に特定の固定ページをまとめる用の任意のフォルダを作成します。
そして、その中に、どんどん固定ページテンプレートファイルを入れていきましょう。
移動させたテンプレートファイルを編集
任意のフォルダ内に入れたテンプレートファイルを開いて、ファイルの冒頭に以下のように記述します。
これを書いておくと、Wordpress管理画面の固定ページの編集画面のテンプレートという項目のセレクトボックスに、このファイルが表示されるようになります。
Template Nameは、page-と.phpを抜いたテンプレートファイル名を入れてください。
<?php
/*
Template Name: テンプレートファイル名(page-と.phpを抜いたもの)
Template Post Type: page
Template Path: 任意のフォルダ名/
*/
function.phpを編集
function.phpに以下の記述を追加していきます。
テンプレート名はpage-
と.php
を抜いた名称を入れます。
作った任意のフォルダ名/固定ページテンプレートファイル名の、固定ページテンプレートファイル名は.php
を抜いた名称を入れましょう。
function custom_page_template($template) {
$new_template = '';
$page_templates = array(
'テンプレート名' => '作った任意のフォルダ名/固定ページテンプレートファイル名',
'abc_template' => 'abcfolder/page-abc_template',
// 複数ある場合は以下に追加していく
);
foreach ($page_templates as $page_slug => $template_path) {
if (is_page($page_slug)) {
$new_template = locate_template(array($template_path));
break;
}
}
if (!empty($new_template)) {
return $new_template;
}
return $template;
}
add_filter('page_template', 'custom_page_template');
Wordpress管理画面で固定ページを新規作成
テンプレートファイルを表示させるためには固定ページ作成が必須です。
Wordpress管理画面を開いて、固定ページを新規作成をしましょう。
必要なのは以下です。
- 固定ページのタイトル
- テンプレートを選択
- URLをクリックしてスラッグを入力
※URLに入力するスラッグは、テンプレートファイルのpage-
と.php
を抜いた名称を入れます。
できたら公開ボタンを押せばテンプレートファイルをブラウザで見ることができるようになります。