Wordpress

2020.08.14

日付で条件分岐|新着マークを付けたり、古い記事に注意書きを表示させたり

新着アイコンを表示したり、特定の日付で分岐したり。Wordpressでよく使う日付に関する条件式アレコレです。

特定の日数だけ新着アイコンを表示:3日以内なら「NEW」を表示

記事にNEWなどの新着アイコンをつけるための条件式です。

ループ内に追加

<?php if ( date('U') - get_the_time('U') < 60*60*24*3 ): ?>
    <span class="new">NEW</span>
<?php endif; ?>

date('U')は今日(秒)を取得、get_the_time('U')は投稿日(秒)を取得するタグです。「今日(秒)」「投稿日(秒)」を取得というのは、1970年1月1日からの経過秒数を取得するという意味で、要は経過秒数で比較して分岐しています。今日から投稿日を引いた秒数が、3日間の秒数(60秒x60分x24時間x3日)より少ないなら、「NEW」を表示するって感じです。

特定の経過年数や経過日数で分岐:古い記事に注意書きを表示

特定の経過年数で分岐

<?php if ( get_the_modified_date('Y') <= date('Y') - 2 ); ?>
この記事は2年前に投稿されたものです。
<?php endif; ?>

投稿された年を取得しているだけなので、1月1日と12月31日で大分と誤差が出ます。

特定の経過日数で分岐して日数を表示

<?php
$past_sec = date('U') - get_the_time('U');
$past_day = floor($past_sec/60/60/24);
if ( $past_day > 365 ): ?>
この記事は<?php echo $past_day ?>日前に投稿されたものです。
<?php endif; ?>

投稿からの経過秒数を取得。日数に変換して365日前のものには注意書きを表示させます。
日数へ変換するときにfloor()で小数点以下を切り捨てしているので、厳密に言うと数時間単位の誤差があります。

特定の日付を境界に条件分岐:投稿日が2014年3月31日以降なら

このブログは2014年に休止させていたものを2020年に再利用してて、古い記事はアイキャッチが小さかったり。なので、2014年以前のものはアイキャッチを表示させないように日付で分岐させています。

以下のコードは、投稿日を取得して、2014/3/31より後ならアイキャッチを表示という内容です。

ループ内に追加

/* 2014年3月31日以降だったら */
<?php if( strtotime(get_the_date('Y-m-d')) > strtotime('2014-03-31') ):?>
  <?php if(has_post_thumbnail()) : /* アイキャッチがあったら */ ?>
    <?php the_post_thumbnail('large'); ?>
  <?php endif; ?>
<?php endif; ?>