- 
		投稿者投稿
- 
		
			
				
2021年2月7日 11:47 AM #67285【お使いの Snow Monkey のバージョン】12.2.2 
 【お使いの Snow Monkey Blocks のバージョン】
 【お使いの Snow Monkey Editor のバージョン】
 【お使いのブラウザ】Chrom
 【当該サイトのURL】### 実現したいこと 投稿や固定ページに カスタムフィールドの登録した内容にヘッダーとフッダーを付けたい ### 発生している問題 カスタムフィールドの登録した内容は表示はされたが、 Snow Monkey のコンテンツと重複して表示される ### 試したこと My Snow monkeyに single.phpを作成 ラップ関数でヘッダーとフッダーを呼び出した ♥ 0Who liked: No user2021年2月7日 11:55 AM #67286ちょっとどのようにしたいのかがよく想像できないので、デザインがわかるような画像(手書きのワイヤーフレームでもかまいません)を貼り付けてもらえますか? ♥ 0Who liked: No user2021年2月7日 2:44 PM #67294大変失礼しました。 まだ、Snow Monkeyを導入して3日ぐらいなので、自分でも理解ができてません。 質問の仕方がうまくできなくて申し訳ございませんでした。 今回は不動産会社のようなLPを制作する予定です。 そこでカスタムフィールドを使ってお客様が入力できるように考えてます。  投稿で試すために、My Snow Monkey のプラグインにsingle.php を作成してソースコードを書きました。   ヘッダ、フッターと登録した数値は確認できたのですが、 結果は重複したものが出てしまいます。  Contoroller:: について調べたのですが、MVCモデルのコントローラのかな?っていう程度で、 理解するところまで調べることができませんでした。 重複しないようにするにはどうするばいいのでしょうか? よろしくお願いします。 ♥ 0Who liked: No user2021年2月7日 3:13 PM #67296想定しているデザインを貼るのを忘れました。 こちらになります。  ♥ 0Who liked: No user2021年2月8日 10:29 AM #67343 ♥ 0Who liked: No user2021年2月8日 10:29 AM #67343共有されたコードだけ見た感じだと 
 Controller::layoutの前に、独自のカスタムフィールドを展開をして表示するコードを書いているのでそれが原因ではないかと。
 展開されたカスタムフィールドの表示後に、Snow Monkeyの記述があるので、それで本来のコンテンツが表示され、重複となっていると思います。なので Snow Monkey 本来の記述を消せば重複しなくなる…のですが、書き方として single.php自体を上書きをする形なので子テーマ同様に影響力の強いカスタマイズとなっている為にメンテが困難にな形と思います。コンテンツを変更やカスタムフィールド参照をして表示するなら フック add_filter( 'the_content', ... )を用いてコンテンツ部に対して書き換えるか、コンテンツを表示する為に用意されているテンプレートに関連するSnow Monkeyテーマ用のフックを掛けてコンテンツ部分を上書きするだけに留める方が良いと考えられます。♥ 1Who liked: No user2021年2月8日 11:34 AM #67357澤登忍さん 
 重複して表示される原因は Kmical Lights さんが書かれているとおりです。
 Snow Monkey はテンプレートを小分けにしているので、single.phpのような大枠から上書きしなくても、コンテンツの表示部分だけを上書きすることができます。方法としては下記の2つが良いと思います。1. コンテンツ部分のテンプレートを上書きするMy Snow Monkey の中に single.phpではなく、コンテンツ部分を表示するためのテンプレートtemplate-parts/content/entry/content/content-post.phpだけをつくって下記のコードを記述する。<?php use Framework\Helper; ?> <?php do_action( 'snow_monkey_before_entry_content' ); ?> <div class="c-entry__content p-entry-content"> <?php do_action( 'snow_monkey_prepend_entry_content' ); ?> <?php the_content(): // ここにカスタムフィールを表示するためのコードを記述 ?> <?php Helper::get_template_part( 'template-parts/content/link-pages' ); ?> <?php do_action( 'snow_monkey_append_entry_content' ); ?> </div> <?php do_action( 'snow_monkey_after_entry_content' ); ?>メリットはコンテンツ部分のマークアップを自由自在に定義できることです。デメリットとしては Snow Monkey がアップデートしてフックの名前が変わったり HTML の構造が変わったときに、このテンプレートにも反映しないと崩れが発生してしまう可能性があります。 2. アクションフックを使うコンテンツ部分の内側で、かつ本文の前の部分で実行されるアクションフックを使う方法です。 add_action( 'snow_monkey_prepend_entry_content', function() { // 投稿タイプが post で詳細ページを表示しているときだけ実行 if ( is_single() && 'post' === get_post_type() ) { // ここにカスタムフィールを表示するためのコードを記述 } } );本文の後ろだと下記になります。 add_action( 'snow_monkey_append_entry_content', function() { // 投稿タイプが post で詳細ページを表示しているときだけ実行 if ( is_single() && 'post' === get_post_type() ) { // ここにカスタムフィールを表示するためのコードを記述 } } );♥ 0Who liked: No user2021年2月8日 6:03 PM #67388Kmical Lights様 ありがとうございます! まだまだ知識が足りなく勉強が必要ですね。 Snow Monkey 本来の記述を消せば重複しなくなる… Kmical Lights様のおっしゃる通り、その時にやってみたのですが、 全てのヘッダーとフッだーが消えてしまう現象でした。 もう少し勉強してから挑戦したいと思います。 テンプレをいじらないでフックでいじれるように頑張ります。 ありがとうございました。 ♥ 0Who liked: No user2021年2月8日 6:14 PM #67389キタジマ タカシ様 ありがとうございます! すごく丁寧に書いていただき本当に嬉しいです! 3日調べ続けたのですが、答えまで行かなくて本当に凹んでました。 もう一度しっかり、勉強して理解してから挑戦してみます。 5日以内に解決しますので、それまではどうぞよろしくお願いします。 ♥ 0Who liked: No user2021年2月8日 6:57 PM #67393キタジマ タカシ様 Kmical Lights様 アクションフックを使うことでうまくいきました! 本当にありがとうございます!! 今後も、もっと勉強して使いこなせるように頑張って 多くの人にSnow Monkeyの良さを伝えていきたいです! クローズとさせていただきます! ♥ 1Who liked: No user
- 
		投稿者投稿
- トピック「カスタムフィールドの登録した内容にヘッダーとフッダーを付けたい」には新しい返信をつけることはできません。

