ある日数だけnewをつけるには?
文字だけ出力する
30日以内の記事にnewを付けています。
<?php
$days = 30;
$today = date_i18n('U');
$entry_day = get_the_time('U');
$keika = date('U',($today - $entry_day)) / 86400;
if ( $days > $keika ):
echo 'new';
endif;
?>
- 「$days = 30」で「New」をつける期間を30日以内にします。
- 「date_i18n(‘U’);」日付を取得する。
- 「get_the_time(‘U’);」現在の投稿時刻の取得。
if
( $days
> $keika
):
30日より、経過した時間が小さかったらnewと表示させる。
こんな感じで、newという文字だけが出力されます。
背景色など、文字がない場合も、背景色が出てしまい、デザインがある場合はこちらだとうまくいきません。
参考にしたサイト https://webdesignday.jp/inspiration/wordpress/3687/
背景色など、デザインごと出力する
<?php
$post_time = get_the_time('U');
$days = 30; //New!を表示させる日数
$last = time() - ($days * 24 * 60 * 60);
if ($post_time > $last) {
echo '<i class="item-icon">New</i>';
}
?>
- 「get_the_time(‘U’);」投稿日時の取得。
- 「$days = 30」で「New」をつける期間を30日以内にします。
- $last = time() – ($days * 24 * 60 * 60); 日数×1日の秒数(日数 × 24 × 60 × 60)
- if ($post_time > $last) もし、経過した秒数の方が小さいときにnewを表示させる。
こんな感じで、背景などにデザインがある場合、こちらのコードで書くとうまくいきました。
参考にしたサイト https://turicco.com/2021/06/17/wordpress-new/