-
投稿者投稿
-
2020年10月29日 6:15 PM #59908
こちら、以下のような形で my-snowmonkey内に front-page.phpを作成してトップページをオリジナルのテンプレートにしました。
ここまではうまく行ったのですが、ヘッダーとフッターも変えようと、header.php / footer.phpを作り、front-page.phpからは「get_header()」を呼び出してみたのですが、ここで作った header.phpは呼び出されずに Snow Monkey標準のヘッダーが呼び出されているようです。
ここで、オリジナルのヘッダーを呼ぶには、どのような手順を踏んだら良いでしょうか? 教えて頂けると幸いです。
♥ 0いいねをした人: 居ません2020年10月29日 11:26 PM #59915add_filter( 'snow_monkey_template_part_root', function( $root, $slug, $name, $vars ) { return MY_SNOW_MONKEY_PATH . '/view'; }, 10, // 正常に動作しない場合、優先度を調整して対応 4 );
で、プラグインのviewディレクトリをテンプレートパーツのルートディレクトリ配列に追加します。
それで、テーマの先にプラグインのviewディレクトリに置いたファイルを代わりに読まれるようになります。(子テーマの上書きみたいな事がプラグインでできます)
※snow_monkey_template_part_root_(slug)
のようなフックもありますが、この場合はややこしくなるので割愛します。そして、テンプレートを独自の箇所で読み込みたい場合は
get_header
などを使わず、My Snow Monkey の
define( 'MY_SNOW_MONKEY_PATH' ....
の次の行にuse Framework\Helper;
を追加した上で、テンプレートを読み込みたい箇所に
Helper::get_template_part( 'header' );
を記述すれば、その箇所で該当のテンプレートファイルが読まれると思います。
この読み込み方をするとsnow_monkey_template_parts_****
などのフックも該当のテンプレートに対して変わらずに使用できます。お試しください。
♥ 1いいねをした人: 居ません2020年10月30日 9:05 AM #59917@Kmical Lights さん
snow_monkey_template_part_root
もまだ動きはしますが、snow_monkey_template_part_root_hierarchy
推奨です!@谷口さん
Kmical Lights さんが書かれているとおりで、My Snow Monkey に配置したテンプレートを読ませるために、Snow Monkey では標準のテンプレートタグをラップした独自のテンプレートタグが用意されています。
header.php
の場合だと\Framework\Helper::get_header();
普通のテンプレートなら
\Framework\Helper::get_template_part();
です。これらに書き換えてみてもらえればと思います!
♥ 0いいねをした人: 居ません2020年10月30日 9:51 AM #59928@キタジマさん
あ……_hierarchy
を書いてたつもりが抜けてました…(たまにやるミス)フック一覧も、非推奨になったフックは非推奨のエリアに分けてまとめた方が良いのかなー…(余談
♥ 0いいねをした人: 居ません2020年10月30日 2:54 PM #59982ありがとうございます! get_header()などは利用できないのですね。ラップ関数を使っていきます!
♥ 2いいねをした人: 居ません2020年10月30日 3:00 PM #59984そうなんです、本当はコアの関数だけでやりたかったんですけど、この辺の関数にはフックがなくて拡張できなくて…^^
♥ 0いいねをした人: 居ません -
投稿者投稿
- トピック「上書きしたテンプレートから、上書きした header.phpを読みたい」には新しい返信をつけることはできません。