「entry-summary $html」の検索結果

15件の結果を表示中 - 1 - 15件目 (全88件中)
  • 投稿者
    検索結果
  • #131151
    キタジマ タカシ
    参加者
    2253

    なるほどです。

    PHPのコード追加が必要なのかなぁとボンヤリ思いつつ、

    そうですね、Snow Monkey に機能としては無いので PHP を書く必要はでてきちゃいますね。とりあえず簡単そうな方法を。カテゴリーページの抜粋部分を本文に書き換えるコードです。My Snow Monkey プラグインか子テーマの functions.php に追加してみてください。

    add_filter(
    	'snow_monkey_pre_template_part_render_template-parts/loop/entry-summary/content/content',
    	function( $html ) {
    		if ( is_category( 'ここにカスタマイズしたいカテゴリーアーカイブのスラッグを記述' ) ) {
    			ob_start();
    			?>
    			<div class="u-entry-content">
    				<?php the_content(); ?>
    			</div>
    			<?php
    			return ob_get_clean();
    		}
    		return $html;
    	}
    );

    カテゴリーページではなく固定ページに表示させたい場合は、記事の一覧を表示させるショートコードかなにか作って対応する形になります。でもそれだと Shortcodes Ultimate とやってることは実質的に同じだと思うので、それなら Shortcodes Ultimate でも良いかもしれません。

    1
    いいねをした人:
    Ao
    閲覧者
    2

    無事表示できました!

    ありがとうございます!

    カスタマイズコードを共有しておきます。

    add_filter(
    	'snow_monkey_pre_template_part_render_template-parts/loop/entry-summary',
    	function ($html, $name, $vars) {
    		// 最近の投稿ブロック以外の場合は処理しない
    		if ($vars['_context'] !== 'snow-monkey-blocks/recent-posts') {
    			return $html;
    		}
    
    		// var_dump( $vars['_entries_id'] );
    		// _entries_id が 1e51cf05-27b1-4623-a80a-737f90e68664 以外のときは処理しない
    		if ($vars['_entries_id'] !== '37975860-b3a3-4ea7-ae82-7e91ebb7a69a') { // clientId かアンカー名が入る
    			return $html;
    		}
    
    		ob_start();
    		?>
    <div>
    	<div>
    		<figure>
    			<?php if (has_post_thumbnail()) : ?>
    				<?php the_post_thumbnail('full'); ?>
    			<?php else : ?>
    				<?php $image_src = wp_get_attachment_image_src('xxx', 'full', true); ?>
    				<img src="<?php echo esc_attr( $image_src ); ?>" alt="">
    			<?php endif; ?>
    		</figure>
    	</div><!-- /.head -->
    	<div>
    		<time datetime="<?php the_time('Y-m-d'); ?>"><?php the_time('Y/m/d'); ?></time>
    		<div><?php the_title(); ?></div>
    		<div><?php echo esc_html(get_post_meta(get_the_ID(), 'test', true)); ?></div>
    		<div>
    			<a>詳しくはこちら</a>
    		</div>
    	</div>
    </div>
    		<?php
    		return ob_get_clean();
    	},
    	10,
    	3
    );
    1
    いいねをした人:
    akosan
    閲覧者

    【お使いの Snow Monkey のバージョン】バージョン: 20.5.1
    【お使いの Snow Monkey Blocks のバージョン】バージョン 19.10.1
    【お使いの Snow Monkey Editor のバージョン】バージョン 9.2.5
    【お使いのブラウザ】chrome
    【当該サイトのURL】https://gojiai.info/_lib/

    ### 実現したいこと

    Snow Monkey Blocksの任意のタクソノミー投稿ブロックと最新の投稿ブロックを使い記事に遷移したい

    ### 発生している問題

    リンクが働かない状態です。

    ・グリッドブロックにSnow Monkey Blocks「任意のタクソノミー投稿」「最新の投稿」を挿入。
    MySnowMonkeyにてPHPを追記して編集しています。
    なぜかリンクが働きません。

    前回こちらで相談させていただいて

    https://snow-monkey.2inc.org/forums/topic/%e6%8a%95%e7%a8%bf%e3%81%ae%e3%82%b5%e3%83%a0%e3%83%8d%e3%82%a4%e3%83%ab%e3%81%a8%e9%a1%8c%e5%90%8d%e3%81%ae%e8%a1%a8%e7%a4%ba%e9%a0%86%e3%82%92%e9%80%86%e3%81%ab%e3%81%97%e3%83%9c%e3%82%bf%e3%83%b3/

    下記のPHPをMySnowMonkeyに追記しました。
    書き出しはうまくいきCSSで形には出来て喜んでいましたが該当記事へのリンクができていない状態です。

    PHP

    
    
    // 記事一覧内の各項目(template-parts/loop/entry-summary)をカスタマイズする例
    add_filter(
    'snow_monkey_pre_template_part_render_template-parts/loop/entry-summary',
    function( $html, $name, $vars ) {
    // 最近の投稿ブロックまたは任意のタクソノミー投稿以外の場合は処理しない
    if ( $vars['_context'] !== 'snow-monkey-blocks/recent-posts' && $vars['_context'] !== 'snow-monkey-blocks/taxonomy-posts' ) {
    return $html;
    }
    
    // _entries_id アンカーが home_pickup 以外のときは処理しない
    if ( $vars['_entries_id'] !== 'home_pickup' ) { // clientId かアンカー名が入る
    return $html;
    }
    
    ob_start();
    ?>
    <div class="home_pick">
    <div class="section_text">
    <div class="pick_title"></div>
    <a class="<?php the_permalink(); ?>">詳細を見る</a>
    
    </div>
    <div class="pick_nail"></div>
    </div>
    <!--?php <br ?--> return ob_get_clean();
    },
    10,
    3
    );
    

    ### 試したこと

    デベロッパーツールで余計なものがCSSでかぶさっていないかの確認

    各デバイスで確認

    #128800
    akosan
    閲覧者
    31

    キタジマさん

    ありがとうございます。新しい機能なんて便利なのでしょうか…!記事を参考にしながらデバックモードでslugの部分を確認して作ってみました。

    
    // 記事一覧部分全体(template-parts/loop/entry-summary)をカスタマイズ
    add_filter(
    	'snow_monkey_pre_template_part_render_template-parts/loop/entry-summary',
    	function( $html, $name, $vars ) {
    		// 最近の投稿以外の場合は処理しない
    		if ( $vars['_context'] !== 'snow-monkey-blocks/recent-posts' || $vars['_context'] !== 'snow-monkey-blocks/recent-posts' ) {
    			return $html;
    		}
    
    	// _entries_id が # 以外のときは処理しない アンカー名がhome_picku以外は処理しない
    	if ( $vars['_entries_id'] !== '#home_pickup' ) { // clientId かアンカー名が入る
    		return $html;
    	}
    
    		ob_start();
    		?>
    		<div>
    			<div><?php the_title(); ?></div>
    			<div><?php echo esc_html( get_post_meta( get_the_ID(), 'test', true ) ); ?></div>
    			<a class="<?php the_permalink(); ?>">詳しく見る</a>
    			<div><?php the_post_thumbnail('thumbnail'); ?></div>
    		</div>
    		<?php
    		return ob_get_clean();
    	},
    	10,
    	3
    );

     

    真ん中のこの部分のみうまくいきませんでした。

    
    // _entries_id が # 以外のときは処理しない アンカー名がhome_pickup以外は処理しない
    if ( $vars['_entries_id'] !== '#home_pickup' ) { // clientId かアンカー名が入る
    return $html;
    }
    

     

    というのもコメントに// clientId かアンカー名が入る とあるのですがこれが何を指すのかわからないままとりあえずやったためです。

    clientId→検索するもわからず
    アンカー名→htmlアンカー?とりあえず試してみたものの失敗

    この2つについてはどこを見ればわかるでしょうか?既出でしたら申し訳ありません。

    0
    いいねをした人: 居ません
    ume
    参加者

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

    ### 実現したいこと

    記事一覧ページ(投稿タイプ甲)を作成しています。
    甲にはタクソノミーA、タクソノミーBが表示されています。
    アーカイブ甲は、上からAの記事が5つ、その下にBの記事が5つ並んでおり、
    アーカイブ甲の中で、タクソノミーAの先頭に見出し①、タクソノミーBの先頭に見出し②を追加したいです。

    ### 発生している問題

    ### 試したこと
    以下のアクションフックを試した
    snow_monkey_template_part_render_template-parts/archive/entry/header/header
    snow_monkey_get_template_part_args_template-parts/loop/entry-summary/term/term

    add_filter(
    	'snow_monkey_template_part_render_template-parts/archive/entry/header/header',
    	function ( $html ) {
    		if ( is_tax('sales') )  {
    			$html = preg_replace(
    					'|(<h1 class="c-entry__title">.*?</h1>)|ms',
    					'<h1 class="c-entry__title">役員</h1><p>役員についての説明文</p>',
    			$html
    			);
    		}
    		return $html;
    	}
    );

    ↑のようなコードを使うのかなと予想は立っているのですがほとんど解決案が出てきません。
    何卒お力添えよろしくお願い申し上げます。

    キタジマ タカシ
    参加者
    2253

    気になった点がいくつかあるので羅列します。

    – 「PDFのURLを取得できず」というのは、get_field('pdf') で値が取れていないということですか?
    str_replace( 'src="' . get_the_post_thumbnail_url($filefiled) . '"', 'src="' . '"', $html ) だと、サムネイルの URL を空にしようとしているように見えます。(ただし、「ファイルのフィールド名を元にサムネイル URL を取得」しようとしているのでおそらくサムネイルの URL は取得できず、置換には失敗していると思います)
    template-parts/loop/entry-summary/figure/figure を対象としてされていますが、ここにはリンクの HTML は無いと思うので、template-parts/loop/entry-summary を対象にして a 要素の href の値を書き換えるのが正しいのではと思うのですがどうでしょうか?

    1
    いいねをした人:
    ume
    参加者

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

    ### 実現したいこと

    カスタム投稿タイプのアーカイブページにて、サムネイル画像をクリックしたときにカスタム投稿タイプで追加したファイル(PDF)のURLを取得し開くようにしたい。

    ### 発生している問題

    PDFのURLを取得できず、カスタム投稿ページが開いてします。

    ### 試したこと

    Advanced Custom Fieldsを使って、カスタムメニューを追加しています。
    ファイルのフィールド名・・・pdf
    返り値・・・ファイルの URL
    アーカイブページのスラッグ・・・report

    下記のようにコードをmy-snow-monkey.phpに記載していますが、うまく実現できません。

    アドバイスをいただけると幸いです。

    お手数をおかけしますが宜しくお願い致します。

    // カスタム投稿タイプアーカイブページ_サムネイル画像のリンクをPDFファイルURLに書き換えたい
    add_filter(
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary/figure/figure',
    	function ( $html ) {
    		// 「report」のアーカイブページだけに適用
    		if ( is_post_type_archive( 'report' ) ) {
    			// カスタムフィールドの値を取得
    			$filefiled= get_field('pdf');
    
    			// サムネイルを変更
    			if ( ! empty( $filefiled ) ) {
    				$html = str_replace( 'src="' . get_the_post_thumbnail_url($filefiled) . '"', 'src="' . '"', $html );
    			}
    		}
    		return $html;
    	}
    );
    GONSY
    参加者
    807

    「新しく投稿されたものに関してはカテゴリラベルのところにNewマークがつくようにする」は以下のコードを加えました。

    すでに「NEW」が表示されているということですね。
    私がやるとすれば、サムネイル上の「NEW」以外のカテゴリー名はCSS( display: none )で消します。
    ご提示のコードの場合、該当の要素に my-new がついていると思いますので、そこだけ強制的に表示させます。

    .c-entries .c-entry-summary__term {
    	display: none;
    }
    
    .c-entries span[class*="my-new"] {
        display: block!important;
    }

     
     
    カテゴリーの表示は、位置をCSSで移動させるのがちょっと嫌なので、フィルターフック snow_monkey_template_part_render_template-parts/loop/entry-summary</header> の後に replace を使ってリンクなしのカテゴリーを表示するようにしてあげれば、それっぽい感じになると思います。

    add_filter(
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary',
    	function( $html ) {
    		$category = get_the_category();
    		$cat_name = $category[0]->cat_name;
    		$html = str_replace( 
    			'</header>',
    			'</header><p class="cat_name_origin"><span>'. $cat_name. '</span></p>',
    			$html
    			);
    			return $html;
    	}
    );

    もっとスマートな方法もあるかと思いますが、1つの例として参考にしていただければと思います。

    1
    いいねをした人:
    キタジマ タカシ
    参加者
    2253

    どこまでがうまくいっていて、どこからがうまくいっていないのかがわからないので、適当なところで var_dump() して問題を把握すると良いかもしれませんね。

    add_filter(
    	// template-parts/loop/entry-summary を書き換える
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary',
    	function( $html, $name, $vars ) {
    		// 「シンプル」のときだけ実行
    		var_dump( $vars['_entries_layout'] );
    		if ( 'simple' === $vars['_entries_layout'] ) {
    			// カスタムフィールドを取得して、それをもとに加工した HTML をバッファリングする
    			// ACF や実際に保存されているデータの構造がわからないので実際の状況にあわせて書き直してください。
    			$course_types = get_field( 'course_type' );
    			var_dump( $course_types );
    			ob_start();
    			foreach ( $course_types as $course_type ) {
    				echo '<span>' . $course_type . '</span>';
    			}
    			$course_type_html = ob_get_clean();
    
    			var_dump( esc_html( $html ) );
    			return str_replace(
    				'</section>',
    				$course_type_html . '</section>',
    				$html
    			);
    		}
    		return $html;
    	},
    	10,
    	3
    );
    1
    いいねをした人:
    akosan
    閲覧者
    31

    ありがとうございます。その後いろいろ調べながらやってみたのですが実現できず、とん挫しています。

    エラーメッセージが出たので

    }
    return $html;

    を追加してエラーは出なくなったのですが表示はできずでした。

    Advanced Custom Fieldsの関数get_fieldを使えばいいのでは?と思い変更したのですがそれではダメでした。※get_post_metaでも出来るようでしたが

    https://lucy.ne.jp/bazubu/advanced-custom-fields-36452.html

     

    add_filter(
    	// template-parts/loop/entry-summary を書き換える
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary',
    	function( $html, $name, $vars ) {
    		// 「シンプル」のときだけ実行
    		if ( 'simple' === $vars['_entries_layout'] ) {
    			// カスタムフィールドを取得して、それをもとに加工した HTML をバッファリングする
    			// ACF や実際に保存されているデータの構造がわからないので実際の状況にあわせて書き直してください。
    			$course_types = get_field( 'course_type' );
    			ob_start();
    			foreach ( $course_types as $course_type ) {
    				echo '<span>' . $course_type . '</span>';
    			}
    			$course_type_html = ob_get_clean();
    
    			return str_replace(
    				'</section>',
    				$course_type_html . '</section>',
    				$html
    			);
    		}
    		return $html;
    	},
    	10,
    	3
    );
    0
    いいねをした人: 居ません
    キタジマ タカシ
    参加者
    2253

    \Framework\Helper::get_template_part( 'template-parts/loop/entry-summary/term/term' ... ); はターム(カテゴリー等)の一覧を取得するものなので、「ここをカスタムフィールドを取得して HTML を生成・加工する」というコードに書き換えればよいのかなと思います。

    僕は ACF に詳しくないのと、実際に course_type にどのような値が入っているかがわからないのであくまでサンプルですが、だいたい下記のような感じになるのかなと思います。

    add_filter(
    	// template-parts/loop/entry-summary を書き換える
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary',
    	function( $html, $name, $vars ) {
    		// 「シンプル」のときだけ実行
    		if ( 'simple' === $vars['_entries_layout'] ) {
    			// カスタムフィールドを取得して、それをもとに加工した HTML をバッファリングする
    			// ACF や実際に保存されているデータの構造がわからないので実際の状況にあわせて書き直してください。
    			$course_types = get_post_meta( get_the_ID(), 'course_type' );
    			ob_start();
    			foreach ( $course_types as $course_type ) {
    				echo '<span>' . $course_type . '</span>';
    			}
    			$course_type_html = ob_get_clean();
    
    			return str_replace(
    				'</section>',
    				$course_type_html . '</section>',
    				$html
    			);
    	},
    	10,
    	3
    );
    1
    いいねをした人:
    akosan
    閲覧者

    【お使いの Snow Monkey のバージョン】バージョン: 20.0.2
    【お使いの Snow Monkey Blocks のバージョン】バージョン 19.2.1
    【お使いの Snow Monkey Editor のバージョン】バージョン 9.2.1
    【お使いのブラウザ】Google Chrome
    【当該サイトのURL】https://sora-sanpo.com/_lib/lesson/

    ### 実現したいこと

    任意のタクソノミーの投稿を表示させたときカスタムフィールドの値を表示させたい

    現在はカテゴリーを表示させているのですが変更することになり、カスタムフィールドに入力した値を表示させることになりました。

    赤枠の所が現在カテゴリーを表示させているのですがそれをやめて、カスタムフィールドに入力した値を同じようなデザインで表示させたい。

    プラグインAdvanced Custom Fieldsでカスタムフィールドを設定。
    タイプはセレクトボックスを使用。

    フィールド名
    course_type


    movie:動画
    meet:対面
    certified:認定講座

    ### 発生している問題

    表示できない

    ### 試したこと

    過去フォーラムを参照
    トップページの最近の投稿ブロックにカスタムフィールドの値とタイトルを表示したい

    前回似た質問したときのトピック

    任意のタクソノミーの投稿の特定の場所にカテゴリーを表示させたい

    以前教えていただいたコードを変更して対応しようとしましたが力不足でできませんでした。
    お忙しいところ申し訳ありませんがご教示いただけると幸いです。

    現在はMySnowMonkeyにて教えていただいた下記コードを書きこんで表示しています。

    /**
     * レッスン一覧のカテゴリーラベルの表示
     */
    add_filter(
    	// template-parts/loop/entry-summary を書き換える
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary',
    	function( $html, $name, $vars ) {
    		// 「シンプル」のときだけ実行
    		if ( 'simple' === $vars['_entries_layout'] ) {
    			// カテゴリーラベルを取得して、各項目の最後に追加する。
    			ob_start();
    			\Framework\Helper::get_template_part(
    				'template-parts/loop/entry-summary/term/term',
    				$name,
    				array(
    					'_context' => $vars['_context'],
    					'_terms' => $vars['_terms'],
    				)
    			);
    			$terms = ob_get_clean();
    
    			return str_replace(
    				'
    
    ',
    				$terms . '
    
    ',
    				$html
    			);
    		}
    		return $html;
    	},
    	10,
    	3
    );
    sususu
    閲覧者
    10

    お世話になっております。

    お忙しい中、検証いただき誠にありがとうございます。

    
    
    add_filter(
    'snow_monkey_template_part_render_template-parts/loop/entry-summary/title/title',
    function ( $html, $name ) {
    if ( is_page( 47 ) ) {
    
    // カスタムフィールドで設定したフィールド名を代入
    $acf_image = get_field('property_image');
    $acf_type = get_field('property_type');
    $acf_location = get_field('property_location');
    $acf_price = get_field('property_price');
    $acf_land_area = get_field('property_land_area');
    
    // テンプレートのh3タグの後に<div class='property-info'>を追加
    $acf_property_info = '</h3>
    <div class="property-info">' .
    '<div class="property-img"><img src="' . esc_url($acf_image) . '" alt="Image"></div>' .
    '<div class="property-body">' .
    '<div class="property-tag">' .
    '<p>' . esc_html($acf_type) . '</p>' .
    '</div>' .
    '<div class="property-content">'.
    '<p class="location">' . esc_html($acf_location) . '</p>' .
    '<p class="price">' . esc_html($acf_price) . '</p>' .
    '<p class="land_area">' . esc_html($acf_land_area) . '</p>' .
    '</div>' .
    '</div>' .
    '</div>';
    
    // テンプレートパーツのh3タグの後ろにdivタグを追加する
    $html = str_replace(
    '</h3>',
    $acf_property_info,
    $html
    );
    }
    return $html;
    },
    10,
    2
    );
    
    

    このように記述しました。

    アイキャッチとタイトルが表示されてしまいますが、こちらはdisplay: none;で消してしまえばいけそうです。

     

    同じページに投稿ページの最新の投稿もブロックで使っていたので

     

    こちらもimageが出てきてしまっていますが、ページ指定で非表示にすればいけそうです。

     

    また試してみて報告させていただきます。

    アドバイスいただき、ありがとうございます。

    0
    いいねをした人: 居ません
    キタジマ タカシ
    参加者
    2253

    ちょっと実際にどういう値が入ってきているのか確認したいので、コードを下記のように改変して、固定ページでどのような値が表示されるか教えてください!

    add_filter(
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary/title/title',
    	function ( $html, $name ) {
    		var_dump( $name );
    		var_dump( get_post_type() );
    		if ( 'propertys' === $name ) {
    		// 〜前後省略〜
    	},
    	10,
    	2
    );
    1
    いいねをした人:
    キタジマ タカシ
    参加者
    2253

    template-parts/loop/entry-summary/title/title はアーカイブページの記事一覧部分でも最近の投稿ブロックの記事一覧部分でも共通して使用されているので、フックはどちらの場合も通っていると思います。

    気になるのは if( is_post_type_archive('propertys') ){ のところで、この条件だと「propertys というカスタム投稿アーカイブページのとき」だけしか処理が実行されなくなってしまいます。

    add_filter(
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary/title/title',
    	function ( $html, $name ) {
    		if ( 'propertys' === $name ) {
    		// 〜前後省略〜
    	},
    	10,
    	2
    );

    のように書き換えるとどうでしょうか?

    1
    いいねをした人:
15件の結果を表示中 - 1 - 15件目 (全88件中)

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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