Wordpressの投稿一覧ページなどで最近の投稿にはNEWと表示させてみました。
実装する方法を考えました。
1. 今日の日付と投稿日の日付を比較する 2. 差がn日以内なら NEW を表示
1. 今日の日付と投稿日の日付を比較する
を参考にfunction.php
にコードを記述します。
<?php // function.php $TODAY = strtotime(date('Y-m-d')); function check_new_post($date) { global $TODAY; $date = strtotime($date); $dayDiff = abs($TODAY - $date) / 86400; //(60 * 60 * 24) return $dayDiff; }
各投稿のループ内から呼び出す事になるので、
今日の日付は何回も計算しないようにglobalに持たせてみました。
$dayDiff
でで投稿日から何日経っているかが解ります。
(function.php全体をclass化してしまいたい。。。)
2. 差がn日以内なら NEW を表示
一旦 2週間(14日)以内ならNEWを表示させたいと思います。
function.php
にif文足すだけですが...
<?php // function.php $TODAY = strtotime(date('Y-m-d')); function check_new_post($date) { global $TODAY; $date = strtotime($date); $dayDiff = abs($TODAY - $date) / 86400; //(60 * 60 * 24) return ($dayDiff < 14); }
呼出し側 content.php
投稿日を関数に渡してtrueなら'NEW'を表示させます。
<?php // content.php if(check_new_post( get_post_time('Y-m-d') )) { echo 'NEW'; } ?>