WordPressで一定期間経過した過去記事に、古い記事であることのメッセージを自動表示する


この記事は2012年6月に掲載されたものです。
状況が変わったり、リンク先が変わっている可能性があります。

ネット上では過去記事がそのまま残っている。内容が時代遅れになっているものや、リンク先が切れて意味不明になっていることも多い。記事には掲載年月日が書かれているので、それを意識して読んでくれればいいのだが、表示が小さかったり、見落とすこともあるだろう。そうした読者に注意を促すため、記事の先頭に古い記事であることを自動的に表示したい。

これは個々の記事を動的生成しているWordPressなら簡単に出来る。静的なHTMLだと、日付をトリガーにしてイベントを起こすのは、表示部分のパーツ化や全体の再構築が必要だろう。最初はWordPressのプラグインを探したが、こんなものは簡単すぎてプラグインにもなっていないようだ。

single.php上で、現在の日付から掲載時の日付を引き、それが指定期間を超えていたらメッセージを表示すればよい。「×年以上経過しています」という表示も可能だが、私は「XXXX年XX月に掲載されたものです」と表示させることにした。

スタイルシート(style.css)

/* 過去記事アテンション */

.old-post {
	margin:15px 0; padding:15px 20px;
	background:#e9e9eb;
	}
.old-post p {
	background:url(/images/icons/exclamation.png) left no-repeat; padding:0 0 0 20px;
	color:#c30;
	}

単一記事の投稿(single.php)

<?php
if(get_the_time('Y-m-d H:i:s') < date('Y-m-d H:i:s', strtotime('-3 year'))) { ?>

<div class="old-post">
<p><strong>この記事は<?php the_time('Y'); ?>年<?php the_time('n'); ?>月に掲載されたものです。</strong><br />
状況が変わったり、リンク先が変わっている可能性があります。</p>
</div>

<?php } ?>

ここでは3年以上経過すると、下記のメッセージが表示される。「リンク先が変わっている可能性があります」としたのは、そのドメイン名が第三者の手に渡り、全く異なるサイトが開設されていることもあるからだ。そうなると単なるリンク切れよりたちが悪く、トラブル防止のためにこうしたメッセージが必要だろう。

この記事はXXXX年XX月に掲載されたものです。
状況が変わったり、リンク先が変わっている可能性があります。

スタイルシートは「Line25」を参考にした。「Line25」では、in_category()で表示するカテゴリーを絞っている。経過期間の計算は「新:新し物好きのおやじ」を参考にした。

エクスクラメーションマークのアイコンは、「famfamfam.com」のSilk Iconsを使用した。クリエイティブ・コモンズのAttributionライセンスなので、footer.phpにクレジットを明記すればよい。

Some icons by <a href="http://www.famfamfam.com/" target="_blank">famfamfam.com</a>