できる!Snow Monkey カスタマイズ – 第8回 静的ビューテンプレート機能

この記事は、不定期連載「できる!Snow Monkey カスタマイズ 」の第8回目。今回の記事の内容は静的ビューテンプレート機能について語ります。

先日、Snow Monkey作者のキタジマさんがTwitter上で下記のようなツイートをされました。

ただ、一応 Snow Monkey には静的ビューテンプレート機能というものがあって、例えば http://example.com/about/  なら、/templates/static/about.php というファイルをつくればビュー(コンテンツ)部分だけテンプレート化できるという機能も用意しています(受託ではやはりあると便利…)

キタジマタカシさんのツイートより抜粋

静的ビューテンプレート機能とは

上記のツイートでも書かれているように、静的ビューテンプレート機能とはビュー部分をテンプレート化出来る機能です。

何が便利なのか

コンテンツの部分だけ、投稿としてブロックなどを使用して書くのではなく、用意したPHPでも書く事が可能なのです。

実際に試してみよう

ツイートされた内容と同様にtemplates/about.phpと言うファイルを用意して/aboutにアクセスするまでを試したいと思います。

この記事では定番のmy-snow-monkeyでプラグインを使用する方法で試してみましょう。
まずは、テンプレートファイルを子テーマではなくプラグイン側で使用できるようにする為にsnow_monkey_template_part_root_hierarchyフックの使用を行います。

テネーブル

my-snow-monkey.phpに下記のコードを記述しましょう。
(既に書かれている場合は追加しなくて大丈夫です)

テネーブル(アイコン01)
add_filter(
	'snow_monkey_template_part_root_hierarchy',
	function( $hierarchy, $slug, $name, $vars ) {
		$hierarchy[] = untrailingslashit( plugin_dir_path( __FILE__ ) ) . '/template_root';
		return $hierarchy;
	},
	1,
	4
);
ルミェール

テンプレートファイルを下記のディレクトリ構造で用意するよ!
(枠だけのアイコンの部分が、新規で用意するフォルダーとファイルだよ)

ルミェール(アイコン03)

my-snow-monkey

my-snow-monkey.php

template_root

templates

static

about.php

テネーブル

試しにabout.phpに下記のように書いてみましょう。

テネーブル(アイコン03)
<?php
echo 'This is Test Message';
echo __FILE__;
ルミェール

記述ができたら保存してテストをしているサイトのhttp://サイトドメイン/aboutにアクセスしてみよう!

ルミェール(アイコン01)
テネーブル

ページが見つからないと言われた場合は、/aboutのURLになるように投稿、または固定ページを生成して下さいね。
/aboutにパーマリンクのある記事がなければ404になってしまいます。

テネーブル(アイコン05)

無事にアクセスが出来た場合は記事投稿画面で記入したブロックなどは全て表示されずに、
This is Test Message/app/public/wp-content/plugins/my-snow-monkey/template_root/templates/static/sample-page.php
のようにPHP内で記述した This is Test Message__FILE__ が処理されたパス名が表示されているはずです。

ルミェール

静的ビューテンプレート機能の方が優先されるんだ。もし、お仕事で使う場合などは該当の固定ページで「このページは静的ビューテンプレート機能で書いてます。」など記載して下書きにしておくと良いかも。

ルミェール(アイコン01)
テネーブル

このように、このページではシステム的なPHPで処理した内容を表示したい場合などに静的ビューテンプレート機能は重宝するのではないでしょうか?

是非、色々な機能を作ってみましょう!

テネーブル(アイコン03)