-
投稿者投稿
-
2020年10月5日 10:23 AM #58485
トピックを新しく立てる方は次の項目も記述してください(要望トピックの場合は不要です)。
【お使いの Snow Monkey のバージョン】
最新
【お使いのブラウザ】
Chrome
【当該サイトのURL】(公開できる場合は書いていただいたほうがスムーズです)
===
初歩的な質問ですみませんが、
Snowmonkey用のブロック「最新の投稿」を使って、下記のデザインカンプのように
最新記事(投稿されて3日以内の記事)に「新着」アイコンを入れ込みたいです。
PHPのどこかに入れ込めばいいのかなと思ったのですが、どこに書き込めばいいかも分からず・・・
ご教授いただけると助かります。よろしくお願いいたします。
♥ 0いいねをした人: 居ません2020年10月6日 9:48 AM #585462点質問です!
1.
「投稿されて3日以内の記事に「新着」アイコンを表示するコード」自体はお持ちですか? Snow Monkey にはそのような機能はないのであるならここに貼り付けていただきたいです。2.
実際には新着は数件並ぶと思いますが、例えば1番上の投稿に新着アイコン、2件目以降の投稿には新着アイコン無しのときはどのように表示したいのでしょうか?それによってどこにアイコンを突っ込むのが良いのかや CSS の書き方が違ってくると思います。♥ 0いいねをした人: 居ません2020年10月6日 11:36 AM #58556PHPコードはこちらです。
↑このサイトから拾ってきただけなので、Snow Monkey に使えるかどうかはよくわからないのですが・・
<?php $days = 1; // NEWマークを表示する日数 $now = date_i18n('U'); // 今の時間 $entry = get_the_time('U'); // 投稿日の時間 $term = date('U',($now - $entry)) / 86400; if( $days > $term ){ echo '<span class="newMark">NEW</span>'; } ?>
「新着記事」タグの有効期間が終わってしまった記事の場合
できれば「記事のカテゴリ名」に差し替えれるとうれしいです。
(これが難しそうなら、普通に新着記事マークが消えてるだけでもかまいません)
♥ 0いいねをした人: 居ません2020年10月6日 1:14 PM #58571snow-monkey の
template-parts/loop/entry-summary/term/term.php
を子テーマなりで上書きすれば手取り早いかもですが推奨できないですね。一応サンプルコード(フォーラムに直接書けなかったので…)
foreach
の中だけ変えてます。フックでこう変えれば良いんですがちょっとややこしい。。。
♥ 3いいねをした人: 居ません2020年10月7日 5:44 AM #58626こちらのトピックを参考にカスタマイズ記事を書きました。
もしよろしければ参考の1つに使ってください。
♥ 3いいねをした人: 居ません2020年10月7日 10:10 AM #58665お二人の方法でも実現できると思うのですが、僕も別な方法を。
レイアウトは「テキスト」の想定です。
追加 CSS に下記の CSS を貼り付けてみてください。
@media (min-width: 64em) { .c-entries--text .c-entry-summary__body > .c-entry-summary__meta { width: 16em; } } .c-entries--text .c-entry-summary__meta .c-meta { display: flex; } .c-entries--text .c-entry-summary__meta .c-meta__item--categories { display: block !important; }
My Snow Monkey に下記のコードを貼り付けてみてください。
add_filter( 'snow_monkey_get_template_part_args_template-parts/loop/entry-summary/term/term', function( $args ) { $days = 5; // NEWマークを表示する日数 $now = date_i18n( 'U' ); // 今の時間 $entry = get_the_time( 'U' ); // 投稿日の時間 $term = date( 'U',( $now - $entry ) ) / 86400; if ( $days > $term ) { $new_term = new stdClass(); $new_term->taxonomy = 'my-new'; $new_term->term_id = 0; $new_term->name = 'NEW'; $args['vars']['_terms'] = [ $new_term ]; } return $args; } );
♥ 4いいねをした人: 居ません2020年10月7日 10:40 AM #58668@キタジマタカシ
(人のトピック内で申し訳ありませんが)勉強になります!!
♥ 2いいねをした人: 居ません2020年10月7日 10:42 AM #58669コード的に一番スッキリなのはこの方法かなと思いまして。ただ、本来 WP_Term のオブジェクトを返すべきところに(無理やり)独自のオブジェクトをつくって返しているので、ここはオレインさんがやられているようにテンプレート上書きか、
snow_monkey_pre_template_part_render
、snow_monkey_template_part_render
でなんとかするほうが安全性は高いと思います。♥ 1いいねをした人: 居ません2020年10月7日 1:08 PM #58682みなさまありがとうございます・・・!
新着記事に「NEW」と「カテゴリ名」がつくようになりました!!!
いろいろなコーポレートサイト等にも応用できそうでありがたいです。
助かりました!
♥ 1いいねをした人: 居ません -
投稿者投稿
- トピック「最新記事一覧のブロックに「新着記事(NEW)」アイコンをつけたい」には新しい返信をつけることはできません。