カスタムフィールドの登録した内容にヘッダーとフッダーを付けたい

0
いいねをした人: 居ません
  • このトピックには8件の返信、3人の参加者があり、最後に澤登忍により3年、 8ヶ月前に更新されました。
9件の投稿を表示中 - 1 - 9件目 (全9件中)
  • 投稿者
    投稿
  • #67285
    澤登忍
    参加者
    8

    【お使いの Snow Monkey のバージョン】12.2.2
    【お使いの Snow Monkey Blocks のバージョン】
    【お使いの Snow Monkey Editor のバージョン】
    【お使いのブラウザ】Chrom
    【当該サイトのURL】

    ### 実現したいこと

    投稿や固定ページに

    カスタムフィールドの登録した内容にヘッダーとフッダーを付けたい

    ### 発生している問題

    カスタムフィールドの登録した内容は表示はされたが、

    Snow Monkey のコンテンツと重複して表示される

    ### 試したこと

    My Snow monkeyに  single.phpを作成

    ラップ関数でヘッダーとフッダーを呼び出した

    0
    いいねをした人: 居ません
    #67286
    アバター画像キタジマ タカシ
    参加者
    2369

    ちょっとどのようにしたいのかがよく想像できないので、デザインがわかるような画像(手書きのワイヤーフレームでもかまいません)を貼り付けてもらえますか?

    0
    いいねをした人: 居ません
    #67294
    澤登忍
    参加者
    8

    大変失礼しました。

    まだ、Snow Monkeyを導入して3日ぐらいなので、自分でも理解ができてません。

    質問の仕方がうまくできなくて申し訳ございませんでした。

    今回は不動産会社のようなLPを制作する予定です。

    そこでカスタムフィールドを使ってお客様が入力できるように考えてます。

    投稿で試すために、My Snow Monkey のプラグインにsingle.php を作成してソースコードを書きました。

    ヘッダ、フッターと登録した数値は確認できたのですが、

    結果は重複したものが出てしまいます。

    Contoroller:: について調べたのですが、MVCモデルのコントローラのかな?っていう程度で、

    理解するところまで調べることができませんでした。

    重複しないようにするにはどうするばいいのでしょうか?

    よろしくお願いします。

    0
    いいねをした人: 居ません
    #67296
    澤登忍
    参加者
    8

    想定しているデザインを貼るのを忘れました。

    こちらになります。

    0
    いいねをした人: 居ません
    #67343
    Kmical Lights
    閲覧者
    234

    共有されたコードだけ見た感じだと
    Controller::layout の前に、独自のカスタムフィールドを展開をして表示するコードを書いているのでそれが原因ではないかと。
    展開されたカスタムフィールドの表示後に、Snow Monkeyの記述があるので、それで本来のコンテンツが表示され、重複となっていると思います。

    なので Snow Monkey 本来の記述を消せば重複しなくなる…のですが、書き方として single.php 自体を上書きをする形なので子テーマ同様に影響力の強いカスタマイズとなっている為にメンテが困難にな形と思います。

    コンテンツを変更やカスタムフィールド参照をして表示するなら

    フック add_filter( 'the_content', ... ) を用いてコンテンツ部に対して書き換えるか、コンテンツを表示する為に用意されているテンプレートに関連するSnow Monkeyテーマ用のフックを掛けてコンテンツ部分を上書きするだけに留める方が良いと考えられます。

    1
    いいねをした人: 居ません
    #67357
    アバター画像キタジマ タカシ
    参加者
    2369

    澤登忍さん
    重複して表示される原因は 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() ) {
    			// ここにカスタムフィールを表示するためのコードを記述
    		}
    	}
    );
    0
    いいねをした人: 居ません
    #67388
    澤登忍
    参加者
    8

    Kmical Lights様

    ありがとうございます!

    まだまだ知識が足りなく勉強が必要ですね。

     Snow Monkey 本来の記述を消せば重複しなくなる…

    Kmical Lights様のおっしゃる通り、その時にやってみたのですが、

    全てのヘッダーとフッだーが消えてしまう現象でした。

    もう少し勉強してから挑戦したいと思います。

    テンプレをいじらないでフックでいじれるように頑張ります。

    ありがとうございました。

    0
    いいねをした人: 居ません
    #67389
    澤登忍
    参加者
    8

    キタジマ タカシ様

    ありがとうございます!

    すごく丁寧に書いていただき本当に嬉しいです!

    3日調べ続けたのですが、答えまで行かなくて本当に凹んでました。

    もう一度しっかり、勉強して理解してから挑戦してみます。

    5日以内に解決しますので、それまではどうぞよろしくお願いします。

    0
    いいねをした人: 居ません
    #67393
    澤登忍
    参加者
    8

    キタジマ タカシ様  Kmical Lights様

    アクションフックを使うことでうまくいきました!

    本当にありがとうございます!!

    今後も、もっと勉強して使いこなせるように頑張って

    多くの人にSnow Monkeyの良さを伝えていきたいです!

     

    クローズとさせていただきます!

    1
    いいねをした人: 居ません
9件の投稿を表示中 - 1 - 9件目 (全9件中)
  • トピック「カスタムフィールドの登録した内容にヘッダーとフッダーを付けたい」には新しい返信をつけることはできません。

ドキュメント

Snow Monkey の設定方法やマニュアルを掲載しています。

ドキュメント

フォーラム

Snow Monkey の使い方やカスタマイズについてのご質問・ご要望等はサポートフォーラムで行っています。サポートフォーラムは誰でも閲覧できますが、書き込みできるのは Snow Monkey 購入者のみとなります。

サポートフォーラム

よくあるご質問

Snow Monkey のサービスについて不明な点がある場合は、まずはよくあるご質問をご確認ください。

よくあるご質問

お問い合わせ

よくあるご質問を見ても解決しなかった場合、試用版の申請については問い合わせフォームからお願いいたします。

お問い合わせ

Snow Monkey は Gutenberg ブロックエディターに対応した 100%GPL の WordPress テーマです。拡張性を意識した開発をおこなっており、カスタマイザーとブロックでスピーディーにサイトを立ち上げるだけでなく、CSS やフックを駆使した高度なカスタマイズにも柔軟に対応できます。