今回は、プラグインの中にあるファイルを、テーマのテンプレートファイルとして使う方法について書きます。
つまり、wp-content/plugin/my-plugin-name/templates/single-example.php
のようなファイルがあったとして、それがテーマ内のsingle.php
や、page.php
、archive.php
と同じように使えるようにする、という意味です。
このやり方のメリットとしては、
- カスタム投稿タイプをサポートするプラグインであってもインストールしたらすぐ使える
というものがあります。カスタム投稿タイプの定義をして、ユーザーがデータを入力できるようにし、その表示のテンプレートもプラグイン側で持つ、ということができます。
逆に、この方法の難しいところとして、
- テンプレートの html の構造が違うからテンプレートファイル使いにくい
という問題があります。
仕様
以下のような動き方にしたいと思います。
- ある名前のファイルが子テーマにあればそれを採用
- 親テーマにあればそれを採用
- テーマに見つからなければ、プラグイン内のあるディレクトリにあるものを採用
上記のような流れでファイルを探していくことで、配布するプラグインでテンプレートファイルを配布しつつ、テーマから上書きできるようにする、というのができるようになります。
https://gist.github.com/ShinichiNishikawa/25ff4e795f3d00ed5b94
get_template_part も同じようにやりたい
次回は以下のリンクを参考に、 get_template_part() を同じようなイメージでできないかを見てみます。