「snow_monkey_prepend_entry_content」の検索結果

6件の結果を表示中 - 1 - 6件目 (全6件中)
  • 投稿者
    検索結果
  • #87756

    返信が含まれるトピック: プレビューが表示されない

    ひろ
    参加者
    20

    GONSY様

    ご返答ありがとうございます!

    バージョンの件承知しました。

    【お使いの Snow Monkey のバージョン】5.8.1
    【お使いの Snow Monkey Blocks のバージョン】12.4.0
    【お使いの Snow Monkey Editor のバージョン】6.1.0

    get_post_metaを試してみましたが映りませんでした…

    my-snow-monkey.php

    —————–

    add_action(
    	'snow_monkey_prepend_entry_content',
    	function() {
    		$title = get_post_meta( get_the_ID(), 'title', true );
    		$date = get_post_meta( get_the_ID(), 'date', true );
    		$detail = get_post_meta( get_the_ID(), 'detail', true );
    		?>
    <dl class="playey-date">
    <dt>選手経歴</dt>
    <dd><?php echo esc_attr( $title ); ?></dd>
    <dt>出身地</dt>
    <dd><?php echo esc_attr( $date ); ?></dd>
    <dt>ポジション</dt>
    <dd><?php echo esc_attr( $detail ); ?></dd>
    </dl>
    		<?php
    	}
    );

    ——————

    試しに投稿ページを削除して作成し直すと問題なく映りました。
    しかし『ホームページ設定/投稿ページ』に指定すると映らなくなったのでここが原因かと思われます。
    何か対策はございますでしょうか?

    0
    いいねをした人: 居ません
    #85240
    GONSY
    参加者
    836

    市岡歩夢さん、こんにちは。

    ほかにも方法はあるかと思いますが、こちらでご希望のことができると思います。

    カスタム投稿タイプ名はmember
    Advanced Custom Fieldsのカスタムフィールド(設定)は

    • カスタムフィールド名:spec
    • フィールドタイプ:テキストエリア
    • 改行:なにもしない

    投稿画面でのカスタムフィールドの入力は

    選手経歴______________
    出身地_________________
    ポジション___________
    一言____________

    と、改行しています。
    これらを前提として、my-snow-monkey.phpに以下を追記

    /**
     * 【最近の投稿】(シンプル)投稿タイプ「メンバー」のみカスタムフィールド"spec"を表示
     */
    add_filter(
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary/content/content',
    	function ( $html ) {
    		if ( 'post' == $post_type ) {
    			return $html;
    		}
    		
    		if ( 'member' == get_post_type() ) {
    			return sprintf(
    				'<div class="c-entry-summary__content">%1$s</div>',
    				nl2br( esc_html( get_field( 'spec' ) ) )
    			);
    		}
    		return $html;
    	},
    	10,
    	4
    );
    
    /**
     * CPT"member"のシングルページにカスタムフィールド"spec"を表示
     */
    add_action(
    	'snow_monkey_prepend_entry_content',
    	function() {
    		if ( is_single() && 'member' === get_post_type() ) {
    		?>
    			<div class="member_spec">
    				<p><?php echo nl2br( esc_html( get_field( 'spec' ) ) ); ?></p>
    			</div>
    		<?php
    		}
    	}
    );

    これでどうでしょうか?
    お試しください。

    5
    いいねをした人:
    アバター画像キタジマ タカシ
    参加者
    2371

    澤登忍さん
    重複して表示される原因は 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
    いいねをした人: 居ません
    #60077
    Paya
    閲覧者
    14

    ページヘッダーは表示できました!ありがとうございました!

    ただ、なぜかcontent-carstock.phpが読み込まれなくなってしまいました。

    今は通常の投稿と同じようなタイトルと、本文が表示された状態となっています。(今回作ろうとしているページにはこのタイトルと本文は不要です。)

    content-carstock.phpには下記のコードを入力を書いています。

    <?php
    /**
     * @package snow-monkey
     * @author inc2734
     * @license GPL-2.0+
     * @version 10.8.0
     */
    
    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' ); ?>
    	<h1><?php the_field( 'maker01' ); ?>&emsp;<?php the_field( 'carname01' ); ?></h1>
    	<?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' ); ?>
    

    single-carstock.phpは下記のコードです。

    <?php
    /**
     * @package snow-monkey
     * @author inc2734
     * @license GPL-2.0+
     * @version 9.0.0
     */
    
    use Framework\Controller\Controller;
    
    Controller::layout( 'one-column' ); // ← 適用したいレイアウトを記述
    Controller::render( 'content', 'carstock' );

    こちら、どこを触ればcontent-carstock.phpが表示されるようになりますでしょうか?

    ディレクトリの位置関係は下記の通りです。

    wp-content/plugins/my-snow-monkey/
    ∟ my-snow-monkey.php
    ∟ override
      ∟ single-carstock.php
      ∟ templates
        ∟ view
          ∟ content-carstock.php
    ∟style.css

    なかなかうまくいかず申し訳ありません。
    どうぞよろしくお願いいたします。

    0
    いいねをした人: 居ません
    Sunagawa
    閲覧者
    3

    キタジマさん、お返事ありがとうございます!

    いただいたアドバイスをもとに、snow_monkey_prepend_entry_content を使って、記事ページに表示することができました。せっかく便利な仕組みがあるのに、どうしても「テーマファイルを編集」という考えのクセが抜け切れないです。。

    また、記事一覧ページは、ご指摘のとおりループの絡みや <li class="c-entries__item"></div> の取り扱いが難しそうでしたので、こちらもアドバイスのありました snow_monkey_template_part_root_hierarchymy-snow-monkey.php へ記述し、themes/snow-monkey/templates/view/archive-post.phpplugins/my-snow-monkey/override/templates/view/ へ複製して下記コードを書くことで意図した表示となりました。
    ありがとうございます!

    今後、似たようなことをやりたいなーと探す方もいるかもしれないので、できあがった表示ページの一部キャプチャ画像も貼っておきますね。上記のコードとあわせ、お役に立てると嬉しいです。

    ただ、My Snow Monkey の存在意義は「テンプレートの上書きを抑制させる」ということなので、もし上書きを多用する必要があるのであれば、子テーマを使うのが良いと思います。

    このあたりは、いくつか案件をやってみてどれくらいのことが求められているのかというところでの判断になりそうですね。あと、初歩的な質問かもしれませんが、子テーマと my-snow-monkey.php は併用(共存)可能ということでよろしいでしょうか?

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

    えっと、テンプレートをカスタマイズしたいというときは、下記の2点について考慮して方法を決定するのが良いと考えています。

    1. 置換や単純な結合で対応可能か
    2. アクションフックで対応可能か

    「★記事一覧(アーカイブ)ページでの表示」の場合だと、ループの内側で、かつ <li class="c-entries__item"></div> を外す必要があるとなると置換では対応できないと思うのでテンプレートを複製してきて上書きする必要があると思います。

    「 my-snow-monkey フォルダ内での置き場所についても教えていただけると」とのことですが、My Snow Monkey はそのままの状態だと上書きする機能が有効化されていません。下記のページを参考にコードを追加することで My Snow Monkey 内にテンプレートを置いて上書きができるようになります。

    ただ、My Snow Monkey の存在意義は「テンプレートの上書きを抑制させる」ということなので、もし上書きを多用する必要があるのであれば、子テーマを使うのが良いと思います。

    「★記事ページでの表示」の場合は the_content() の前か後ろということなので snow_monkey_prepend_entry_contentsnow_monkey_append_entry_content のアクションフックを使うのが良いと思います。

    add_action(
    	'snow_monkey_prepend_entry_content',
    	function() {
    		?>
    		ここに追加したい HTML
    		<?php
    	}
    );
    0
    いいねをした人: 居ません
6件の結果を表示中 - 1 - 6件目 (全6件中)

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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