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