Movable Type 備忘録
PHPで新規エントリに「NEW」イメージを期間表示させる
- Prev Page: カレンダーを横長に表示してみる
- Next Page: フィード読込んで気になるサイトチェック!
以前、新規エントリに「NEW」イメージを期間表示させるで、CGIスクリプトによる新規エントリを期間限定でNEW イメージを表示する方法を紹介しました。
今回は、PHPによるNEWイメージを表示させてみようと思います。
PHPを使うメリット
基本的な機能は、PHPスクリプトにしてもCGIスクリプトにしても同じです。
今日の日付とエントリが投稿された日付を比較して、今日から何日以内だったらNEWイメージを表示させる…というだけです。
以下にPHPスクリプトのメリットを挙げてみます。
サーバー側で動作するスクリプトです。(メリットなのかな!?)
ページアクセスにより表示されるページが動的に生成されます。(条件によりページ生成可能)CGIスクリプトlに比べると高速に動作し、サーバーの負荷も軽いそうです。
カスタマイズ方法
実は以前にも、わたしが初めて作ったPHPスクリプトを紹介したことありますが、友人の助言を元にもっとシンプルに改良してみたんです。
まずPHPスクリプトを追加します。
以下のコードを<head>~</head>の間に追加します。
<?phpfunction 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\">";}?>
青い時の部分を表示させたいイメージのURLに変更します。
上記コードをテンプレートで共有化してもいいかも、です。そうすれば、メインページだけでなく、月別・日別アーカイブなどにも使えますね。
テンプレートで共有化した場合には、以下のコードを<head>~</head>の間に追加します。
<?php include('<$MTBlogSitePath$>print_new.php'); ?>
次に、NEWイメージを表示させたいところでPHPスクリプトを呼び出すコードを追加します。 例えば、最近のエントリ一覧にNEWマークを表示させてみます。
以下は、わたしが使用している
マーク付きのエントリ一覧のコードです。
<MTEntries lastn="20"><span style="color:#444444; margin:1px; padding:1px;">»</span><a href="<$MTEntryPermalink$>" title="e<$MTEntryID$>"><$MTEntryTitle$></a><?php print_new("<$MTEntryDate language='en' format='%Y%m%d'$>",3); ?><br /></MTEntries>
青い時の部分がPHPスクリプトを呼び出して、NEWマークを表示させるコードです。赤い字の部分は、経過日数を指定します。
上記コードでは、3日間エントリにはNEWマークを表示するよう指定しています。
以上で、PHPスクリプトによる新規エントリにNEWマークをつけることができました。
表示結果だけがページに反映されるので、不要となったコードもページ内には入らないので、わたしはPHPスクリプトを好んで使っています。とはいっても、まだまだ勉強中だけどね。
Trackback Pings(2)
- from
caraldo.net | MT Blog
PHPスクリプトを使ったMTのカスタマイズをご紹介。 スクリプト自体は参照先のM...
- from
6畳キッチンより愛をこめて
新しいエントリーにNEWマークをつける。投稿○日以内のエントリーがあるカテゴリーにもNEWマークをつける。
Comments(0)
No comments found.



Post a Comment