WordPressで、古い記事に警告を表示する方法

このブログのようにWeb関連の技術ブログの場合、古い記事の内容は現在の実情にあわない場合があります。
このブログでは、そのような古い記事の場合に、記事の上に警告を表示しています。
この記事では、その方法について解説します。

ソースコード

プラグインにする方法もありますが、今回はテーマファイルに追記することで簡単に実装してみます。

まず、テーマファイル内の single.php を開き、記事本文を表示する「」などの上に以下のように書きます。

1
2
3
4
5
6
7
8
9
<?php
// 2年以上更新されていなければ警告を表示
if ( get_the_modified_date('Y') <= date('Y') - 2 ) {
?>
<aside class="status">
<h4>ご注意</h4>
<p>この記事は <strong><?php the_time('Y年n月j日') ?></strong> に書いたものです。現在は状況が異なる可能性がありますのでご注意ください。</p>
</aside>
<?php } ?>

解説

2行目の get_the_modified_date() 関数は、WordPress の独自関数で「記事が更新された日時」を返すものです。

引数で ‘Y’ と指定しているので、この場合は「記事が更新された年」が返ってきます。

2行目右側の date(‘Y’) は、現在の年を返します。 – 2 で、現在の年から 2 を引きます。

例えば、記事を書いたのが2012年で、今年が2014年の場合、「2012 <= 2014 – 2」となり、条件が満たされ、{ } の内側が実行されることになります。

警告表示の例

※表示例

注意点

このコードは、厳密に2年以上前の日付と比較しているのではなく、2年以上前の12月31日までに書かれた記事を古い記事であると判定します。
その方が(どの記事に警告が表示されるかが、ブログオーナーにとって)分かりやすいと感じたためそうしています。

このコードは「記事を書いた日」ではなく「記事が更新された日」をもとに判定します。
例えば、記事の内容が古いことに気づいて最近内容を変更し、内容を修正して上書き保存した場合は警告が表示されなくなります。

If you like this article click the Facebook “Like” button to share it with your friends!