-
投稿者投稿
-
2022年11月25日 5:54 PM #114247
お世話になっております。
テンプレートの任意の場所に別のテンプレートを挿入したいのですが、方法が分からず困っております。
もし方法ご存知でしたらご教示いただけますと幸いです。
【お使いの Snow Monkey のバージョン】18.1.1
【お使いの Snow Monkey Blocks のバージョン】17.1.0
【お使いの Snow Monkey Editor のバージョン】 9.0.3
【お使いのブラウザ】 Google Chrome<やりたいこと>
テンプレートの任意の場所に別のテンプレートを挿入したい
具体的にはページタイトルの中にパンくずを表示したく、page-header.phpの任意の場所にテンプレート”breadcrumbs.php”を挿入したいです。
<試したこと>
‘snow_monkey_template_part_render_template-parts/common/page-header’でフックしてその中でget_template_part(‘template-parts/common/breadcrumbs’)を呼び出すも、その場で展開されてしまい、ヘッダーの一番上にパンくずが表示されてしまいました。
やってはならぬと思いつつもpage-header.php内のパンくずを表示したい場所に以下を挿入し、期待通りの結果は得られております。
<?php //Helper::get_template_part( ‘template-parts/common/breadcrumbs’ ); ?>
テンプレートの中身を書き換えずに同様の結果を得る方法ございますでしょうか?
♥ 0いいねをした人: 居ません2022年11月26日 11:53 AM #114254‘snow_monkey_template_part_render_template-parts/common/page-header’でフックしてその中でget_template_part(‘template-parts/common/breadcrumbs’)を呼び出すも、その場で展開されてしまい、ヘッダーの一番上にパンくずが表示されてしまいました。
実際に書いたコードと、具体的にどの部分に表示したいのかかがわかるスクショなどを共有してもらうことはできますか?
♥ 0いいねをした人: 居ません2022年11月26日 4:52 PM #114267キタジマさま
ご返答いただきありがとうございます。
最初からコードと希望のスクショを共有させていただくべきでしたね。
大変失礼いたしました。コードは以下の通りとなります。
add_filter( 'snow_monkey_template_part_render_template-parts/common/page-header', function( $html ) { $breadcrumbs = get_template_part( 'template-parts/common/breadcrumbs' ); return str_replace( '</h1>', '</h1>'. $breadcrumbs , $html ); return $html; } );
表示したい位置は以下の通りです。
また、ページヘッダーのアイキャッチ画像の位置は『ページヘッダーの上にタイトルを表示』に設定しています。
どうぞよろしくお願い申し上げます。
♥ 0いいねをした人: 居ません2022年11月27日 8:34 AM #114282get_template_part()
は値を返す関数ではなく出力する関数なので、$breadcrumbs = get_template_part( 'template-parts/common/breadcrumbs' );
としても$breadcrumbs
に値は格納されずその時点で画面に出力されてしまいます。なので、下記のようにするとどうでしょう?ob_start(); get_template_part( 'template-parts/common/breadcrumbs' ); $breadcrumbs = ob_get_clean();
♥ 0いいねをした人: 居ません2022年11月27日 6:05 PM #114291 -
投稿者投稿
- トピック「テンプレートの任意の場所に別のテンプレートを挿入したい」には新しい返信をつけることはできません。