上書きしたテンプレートから、上書きした header.phpを読みたい

6件の投稿を表示中 - 1 - 6件目 (全6件中)
  • 投稿者
    投稿
  • #59908
    谷口 允
    参加者
    8

    こちら、以下のような形で my-snowmonkey内に front-page.phpを作成してトップページをオリジナルのテンプレートにしました。

    ここまではうまく行ったのですが、ヘッダーとフッターも変えようと、header.php / footer.phpを作り、front-page.phpからは「get_header()」を呼び出してみたのですが、ここで作った header.phpは呼び出されずに Snow Monkey標準のヘッダーが呼び出されているようです。

    ここで、オリジナルのヘッダーを呼ぶには、どのような手順を踏んだら良いでしょうか? 教えて頂けると幸いです。

    0
    #59915
    Kmical Lights
    参加者
    159
    add_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
    #59917
    キタジマ タカシ
    キーマスター
    392

    @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
    #59928
    Kmical Lights
    参加者
    159

    @キタジマさん
    あ…… _hierarchy を書いてたつもりが抜けてました…(たまにやるミス)

    フック一覧も、非推奨になったフックは非推奨のエリアに分けてまとめた方が良いのかなー…(余談

    0
    #59982
    谷口 允
    参加者
    8

    ありがとうございます! get_header()などは利用できないのですね。ラップ関数を使っていきます!

    1
    #59984
    キタジマ タカシ
    キーマスター
    392

    そうなんです、本当はコアの関数だけでやりたかったんですけど、この辺の関数にはフックがなくて拡張できなくて…^^

    0
6件の投稿を表示中 - 1 - 6件目 (全6件中)
  • トピック「上書きしたテンプレートから、上書きした header.phpを読みたい」には新しい返信をつけることはできません。