PHPでNEWマークを自動ON/OFF

新しいエントリーに「NEW」というマークを出力したい!自分で付けたり外したりするのは面倒ですね。PHPを使って、自動化しましょう。

ビジネスブログなら必要

通常の日記ブログの場合は最新の日付順にリストされる「最近のエントリー一覧」があるので、そんなに不便は感じないかもしれません。

しかし、ビジネスブログとなると、各カテゴリ別に一覧表示したい!という要望も出てきます。当社のホームページも、トップは「ビジネスブログ」「ブログサイト構築」「PHP開発」「ブログSEO対策」「お知らせ」をカテゴライズして最新順に一覧表示しています。

ページが長くなって読みにくくなっても、このNEWマークを付けることによって、どのエントリーが新しいのか目立たせることができます。

PHPでNEWマークを自動ON/OFF

そこで、PHPを使って「今日の日付」と「エントリーした日付」を比較して、自動的にNEWマークを表示することを考えてみましょう。

当社では、こんなPHP関数を使っています。

<?php
function disp_new($d1,$n){
$d3=date( "Ymd", mktime( 0,0,0,date("m") ,date("d")-$n, date("Y") ) );
if($d1>=$d3) print "<img src=\"<$MTBlogURL$>img/new.gif\">";
}
?>

これは、エントリー日付と、今日から何日前までだったら、という情報を受け取り、該当する場合、NEW画像(  目立つようにアニメーションGIFにしてあります。)を表示するものです。

このPHPで作った関数の使い方は簡単です

NEWマークを表示したい部分(だいたいタイトルの横など)に、次のような1行を追加するだけでOKです。

<?php disp_new("<$MTEntryDate language='en' format='%Y%m%d'$>",3); ?>

この例だと、3を指定してますので、3日経過すると自動的にNEWマークが消えます。

PHPだから、MovableTypeの再構築も必要ない!

PHPなので処理はダイナミックに行なわれます。したがって、MovableTypeの「再構築」は必要ありません。このNEWのON/OFFくらいでいちいち再構築するのは面倒ですよね。