-
投稿者投稿
-
2021年10月19日 3:46 PM #89728
【お使いの 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いいねをした人: 居ません2021年10月20日 2:26 AM #89762おそらく
a
が入れ子になってしまうのではないでしょうか? HTML 的にa
は入れ子にできないのでそのようになってしまいます。子テーマか My Snow Monkey で
template-parts/loop/entry-summary-products.php
をつくって上書きする形にするしかないのかなぁと思います。♥ 0いいねをした人: 居ません2021年10月20日 5:02 AM #89763キタジマさんありがとうございます!
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いいねをした人: 居ません2021年10月20日 7:20 AM #89769すみません。
追加で教えていただけますと幸いです。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いいねをした人: 居ません2021年10月20日 8:53 AM #89773何度もすみません!
先ほどの質問とは別の方法で解決いたしました。先ほどの質問の意図ですが、
entry-summary-products.php
として上書きしてしまうと
一覧ページの写真の右上のカテゴリ表記が消えてしまっていたので
figure.php
やterm.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; } );
もし上記コードの対応でおかしいようでしたらご指摘いただけますと幸いです。
どうぞよろしくお願いします!
2021年10月20日 9:12 AM #89774それでも問題ないと思います!
「投稿のビューテンプレート」を使うと、
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
の中を見てもらうのがわかりやすいと思います。2021年10月20日 9:48 AM #89779 -
投稿者投稿
- トピック「My Snow Monkeyでaタグが入ってきてしまう」には新しい返信をつけることはできません。