PHPを用いたエントリー・ランダムピックアップ Ver 1.00

  • 投稿日:
  • by

ブログを続けていくと、どんどんエントリーが増えてきます。

このブログも、これを書いている時点で、
800エントリー超えております

せっかくのすばらしいエントリーでも、
「2年前」とかのエントリーだと、
なかなか「日の目を見る」のも困難になってきます(^^;)


そこで、さまざまなブログで、

「エントリーのランダムピックアップ」

というのが公開されていますが、
ここでは、せっかくなので「PHP」で作ってみることにしました。

ちなみに、トップページに表示しているのが、それです。


それでは、作成方法を。

まず、
すべてのエントリーリストを出力する「テンプレート」を作成します。


テンプレート名・・・「all-entries-rare」(任意)
出力ファイル名・・・「all-entries-rare.php」(任意)
テンプレート内容

<MTSubCategories><MTEntriesWithSubCategories> <a href="<$MTEntryPermalink$>"><$MTEntryTitle$> <span id="pickup-date">(<$MTEntryDate format="%Y年%m月%d日"$>)</span></a> </MTEntriesWithSubCategories></MTSubCategories>


ちなみにこのテンプレートは、
1週間に1回程度でリビルドすればいいかと思います。

あくまで過去からのピックアップですから(^^;)

↓こちらを参考にしてください(^^;)
Project MultiBurst:cronでMovableTypeを定期的に再構築


次に、
「ランダムピックアップ」を表示するテンプレートを作成します。

テンプレート名・・・「エントリー・ランダムピックアップ」(任意)
出力ファイル名・・・「ramdom-entry-pickup.php」(任意)
テンプレート内容

<?php $entries = file("all-entries-rare.php"); $cnt = count($entries) -1; srand( (double)microtime()*1000000 );

echo "<div class=\"pickup\">\n";
echo "<ul>\n";
for ( $i = 0; $i < 4; $i++) {
$num=round( rand(0,$cnt) );
echo "<li>" . $entries[$num] . "</li>\n";
}
echo "</ul>\n";
echo "</div>";
?>

青文字表示件数ですので、適宜変更してください。


そして、
表示するメインページ等のテンプレートに挿入します。

<? include("<$MTBlogURL$>ramdom-entry-pickup.php"); ?>


これで完成です!