My Snow Monkeyでaタグが入ってきてしまう

0
いいねをした人: 居ません
7件の投稿を表示中 - 1 - 7件目 (全7件中)
  • 投稿者
    投稿
  • #89728
    倉田 ともか
    参加者
    12

    【お使いの Snow Monkey のバージョン】15.11.1
    【お使いのブラウザ】Chrome

    いつもお世話になっております!

    ### 実現したいこと

    カスタム投稿の記事一覧の画像上にMy Snow Monkeyを使ってリンクを追加したいです。

    ### 発生している問題

    My Snow Monkeyで以下のようなコードを追加しました。

    add_filter(
    	'snow_monkey_template_part_render_template-parts/loop/entry-summary/figure/figure',
    	//entry-summary-postが対象
    	function( $html ) {
    		if (get_post_type() === 'products'): //カスタム投稿 productsに限定する
    			// 以降の出力を変数に格納する
    			ob_start();
    			?>
    			<div class="morebuy">
    				<a href="<?php the_permalink(); ?>" class="more">MORE</a>
    				<?php if(post_custom('base')): ?>
    				<a href="<?php the_field('base'); ?>" target="_blank" class="buy">BUY</a>
    				<?php endif; ?>
    			</div>
    			<?php
    			// 変数に格納
    			$morebuy = ob_get_clean();
    			// </div>を書き換える
    			return str_replace(
    				'</div>',
    				$morebuy.'</div>',
    				$html
    			);
    		endif;
    		return $html;
    	}
    );

    無事に表示はされているのですが、
    <li class="c-entries__item">
    <section class="c-entry-summary c-entry-summary--post c-entry-summary--type-products">
    の後に
    記事のaタグが入ってきてしまいます。

    <li class="c-entries__item">		
    <a href="https://記事のパーマリンク">
    	</a><section class="c-entry-summary c-entry-summary--post c-entry-summary--type-products"><a href="https://記事のパーマリンク">
    </a>

    ### 試したこと
    My Snow Monkeyでdiv class=”morebuy”内のaタグを抜かして普通のテキストにしたところ
    余分なaタグは入ってきませんでした。

    aタグを入れると余分なaタグが入ってきてしまいます。

    なんでaタグを入れるとこうなってしまうのかが調べてもわからず
    フォーラムに投稿させていただきました。

    どうぞよろしくお願いします。

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

    おそらく a が入れ子になってしまうのではないでしょうか? HTML 的に a は入れ子にできないのでそのようになってしまいます。

    子テーマか My Snow Monkey で template-parts/loop/entry-summary-products.php をつくって上書きする形にするしかないのかなぁと思います。

    0
    いいねをした人: 居ません
    #89763
    倉田 ともか
    参加者
    12

    キタジマさんありがとうございます!
    aタグは入れ子にできない…という初歩的なことで恥ずかしすぎます…。

    entry-summary-products.phpをMy Snow Monkeyの中に作って以下のように設定し、
    無事に解決いたしました!

    add_filter(
    	'snow_monkey_template_part_root_hierarchy_template-parts/loop/entry-summary',
    	function( $hierarchy ) {
    		$hierarchy[] = untrailingslashit( __DIR__ ) . '/override';
    		return $hierarchy;
    	}
    );

    ありがとうございました!
    今後ともどうぞよろしくお願いします。

    0
    いいねをした人: 居ません
    #89769
    倉田 ともか
    参加者
    12

    すみません。
    追加で教えていただけますと幸いです。

    template-parts/loop/entry-summary-products.php
    の中では、
    template-parts/loop/entry-summary/figure/figure
    を読み込んでいますが

    figureの内容もproducts用にしたかったら
    figure-products.phpをMy Snow Monkeyの中に作って
    以下のように追加で設定する必要がありますか?

    add_filter(
    	'snow_monkey_template_part_root_hierarchy_template-parts/loop/entry-summary/figure/figure',
    	function( $hierarchy ) {
    		$hierarchy[] = untrailingslashit( __DIR__ ) . '/override';
    		return $hierarchy;
    	}
    );
    0
    いいねをした人: 居ません
    #89773
    倉田 ともか
    参加者
    12

    何度もすみません!
    先ほどの質問とは別の方法で解決いたしました。

    先ほどの質問の意図ですが、
    entry-summary-products.phpとして上書きしてしまうと
    一覧ページの写真の右上のカテゴリ表記が消えてしまっていたので
    figure.phpterm.php
    何かしないといけなかったのかと思い質問しました。

    でも問題はそこではなく
    カスタム投稿のアーカイブページのビューテンプレートを
    「投稿のビューテンプレート」にすることで
    右上のカテゴリ表記が復活しました。

    ただ「投稿のビューテンプレート」を選択すると
    entry-summary-products.phpは上書きされないので
    entry-summary-post.phpをMy Snow Monkeyへコピーして
    カスタム投稿だけ上書きにする以下のコードにして解決しました!

    add_filter(
    	'snow_monkey_template_part_root_hierarchy_template-parts/loop/entry-summary',
    	function( $hierarchy ) {
    		if (get_post_type() === 'products'): //カスタム投稿 productsに限定する
    		$hierarchy[] = untrailingslashit( __DIR__ ) . '/override';
    		endif;
    		return $hierarchy;
    	}
    );

    もし上記コードの対応でおかしいようでしたらご指摘いただけますと幸いです。

    どうぞよろしくお願いします!

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

    それでも問題ないと思います!

    「投稿のビューテンプレート」を使うと、entry-summary-products.php ではなく entry-summary-post.php が使われるようになります。投稿のビューテンプレートというのは templates/view/content-post.php のことですが、この post が各テンプレートパーツにも引き継がれるので entry-summary-post.php が使われるということです。

    「投稿のビューテンプレート」を使わない場合は、entry-summary-products.php の中で template-parts/loop/entry-summary/figure/figure.php を呼び出すときに、テンプレート引数 $args['_terms'] に表示したいカテゴリーの情報を渡す必要があります。これは entry-summary-post.php の中を見てもらうのがわかりやすいと思います。

    1
    いいねをした人:
    #89779
    倉田 ともか
    参加者
    12

    ありがとうございます!
    「投稿のビューテンプレート」を使わない場合は表示したいカテゴリーの情報を渡す必要があることも理解いたしました。
    また一つ勉強になりました。

    トピックを閉じますね。
    今後ともどうぞよろしくお願いいたします。

    1
    いいねをした人:
7件の投稿を表示中 - 1 - 7件目 (全7件中)
  • トピック「My Snow Monkeyでaタグが入ってきてしまう」には新しい返信をつけることはできません。

ドキュメント

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

ドキュメント

フォーラム

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

サポートフォーラム

よくあるご質問

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

よくあるご質問

お問い合わせ

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

お問い合わせ

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