closeこの記事は 1 年 11 ヶ月 25 日 前に書かれたものです。
最新の情報とは異なる場合がありますのでご注意ください。

今回、Movable Type から WordPress に移行し、過去の投稿の HTML やリンクなどを修正していて、リンク切れになっている情報や、現在は状況が変わっている情報などが多々あることに、改めて気がつきました。

そこで、半年以上経過した記事にはメッセージを表示しようと、個別記事のテンプレートに以下のようなコードを加えました。

<?php if ( time() - strtotime( $posts[0]->post_date_gmt ) > ( 6 * 30 * 24 * 60 * 60 ) ) {  ?>
<p class="old-post">※この投稿は半年以上前のものですので、最新の情報とは異なる場合があります。</p>
<?php } ?>

でも、WordPress のことだから何かプラグインがあるかもしれないと探してみたら、あっさりと結構有名っぽい Old Post Notifier というプラグインがありましたので、早速導入しました。

メッセージを表示する基準経過日数、除外するカテゴリ、背景やテキストなどの色、メッセージ本文の設定ができますが、そのままでは日付が “1 year 9 months 20 days” のようになるので、“1 年 9 ヶ月 20 日” という具合にするためには、old-post-notifier.php の194行目、198行目、202行目をそれぞれ編集する必要があります。

if($day == 0)
	$day = "";
else
	$day = sprintf(__ngettext(" %d 日", " %d 日", $day, 'oldpost'), $day);
if($year == 0)
	$year = "";
else
	$year = sprintf(__ngettext(" %d 年", " %d 年", $year, 'oldpost'), $year);
if($month == 0)
	$month = "";
else
	$month = sprintf(__ngettext(" %d ヶ月", " %d ヶ月", $month, 'oldpost'), $month);

Old Post Notifier によるメッセージ

設定した日数以前の個別記事ページの本文の先頭にメッセージが表示され、閲覧者が右上の [×] で閉じることもできます。