最新記事が自己主張する

2007y10m25d_214530828.jpg うちみたいな自己満足ブログだと、トップページへ訪問してくれる奇特な方はかなり稀で、数少ないアクセスもだいたい検索エンジンを介して訪問してくれる方ばかり ・・・リピーター確保したけりゃ読みたがるような記事賭けよ!ってな話なんですが、ネタナシ,口下手,センスなしっと3拍子揃った私にゃ無理ってもの

3拍子揃ってるんなら悪あがきせずに、検索エンジンから訪問してくれた人に新しい記事がありますよ~っ的な自己主張をしてみようと思った次第...

どんな風に自己主張させようか?って考えたんだけど、新しく書いた記事のリンクに、GIFアニメで表示させるのが良いな~。しかも手動だと面倒な作業になるから、新しい記事を書く度に自動的に表示されて決めた期間で自動的に消えるようになってくれるのが良いな~。(右の画像参照)

っと知識もないくせに、したい事だけは人一倍多かったりするワガママな私。
そんな私がしたい事を叶えられるのは、偏にMovableTypeユーザーの兵(つわもの:すぐれている人)の皆様がいるからなの 。そして今回も、私のニーズ通りのカスタマイズ方法がMovableType備忘録:bzbellさんのトコロにあったわ。


PHPで新規エントリに「NEW」イメージを期間表示させる - MovableType備忘録
設置・表示方法はbzbellさんの説明が丁寧なので私が言及するようなことはないんですが、以下忘れっぽい自分の為のメモ。

表示したテンプレートの<head>~</head>の間に下記のPHPスプリクトを追加します。
<?php
function print_new($entry_date,$days=3)
{
    $result=date("Ymd", mktime( 0,0,0,date("m") ,date("d") - $days, date("Y")));
    if ( $entry_date >= $result ) print "<img src=\"<$MTBlogURL$>image/new.gif\">";
}
?>

<$MTBlogURL$>image/new.gif部分はイメージを指定しているので、自分の表示させたいイメージのURLと変更する。イメージの置き場所がブログのアドレスではないトコロなら、<$MTBlogURL$>も変更。

月別やカテゴリーのページでも使用するならテンプレートによる共有化が楽で良い。
上記のPHPスプリクトをprint_new.phpという出力ファイル名でインデックステンプレートに作り、月別やカテゴリー・個別エントリー等、表示したいテンプレートの<head>~</head>の間に以下のコードを追加
<?php include('<$MTBlogSitePath$>print_new.php'); ?>

NEWイメージを表示させたいところでPHPスクリプトを呼び出すコードを追加します。
例: 最近の7エントリーのうちで投稿後3日間だけNEWマークを表示する。
<MTEntries lastn="7">
<a href="<$MTEntryPermalink$>" title="e<$MTEntryID$>"><$MTEntryTitle$></a>
<?php print_new("<$MTEntryDate language='en' format='%Y%m%d'$>",3); ?>
</MTEntries>
エントリーの表示数やNEWマークを表示する期間を変更したい時は、上記の7と3のトコロをそれぞれ変えれば没問題!コレで最近のエントリーにNEWマークが表示されるようになった。

カテゴリー目次ページでもNEWマーク 最近の7エントリーをTOPページでしか表示していないうちのブログだと、やっぱりTOPページにアクセスがなければ最新記事は自己主張してくれないので、目次化してるカテゴリーのページでも表示するコトにした。

カテゴリーも基本は同じ。
<MTEntries>~</MTEntries>の間に<?php print_new("<$MTEntryDate language='en' format='%Y%m%d'$>",3); ?>のコードを入れれば良いの。

出来たのは嬉しいんだけど、カテゴリーのページもこのブログじゃ皆無。だから全ページにあるメニューのカテゴリー一覧の、最新エントリーのあるカテゴリーにもNEWマークを付けるコトにした。

カテゴリーにある1番新しいエントリーの記述日が、3日以内なら表示するワケだから・・・っとイロイロと思考錯誤したら表示されるようになったけど、知識のない私がやってみたら出来ちゃった♪的な方法なので、以下参考になるかどうかは怪しいし、訪問してくれた人に自己主張してるかどうか?ってのはもっと怪しいし、訪問者が居るか?ってことになると非常に怪しいわ...泣けてくるわ。

<ul>
<MTCategories show_empty="1">
<MTEntries lastn="1">
<li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><$MTCategoryLabel$></a>
<?php print_new("<$MTEntryDate language='en' format='%Y%m%d'$>",3); ?></li>
</MTEntries>
</MTCategories>
</ul>