ブログのコメント数ランキングの作り方

 先日の作成したリツイート数ランキングに続きまして、今度はコメント数ランキングを作ってみました!WordPress用で、現在本ブログのヘッダー部分に表示されています。


コメント数ランキングの考え方

 グローバル関数の$wpdbを使って、データベースから記事データを読み込んで表示します。

 データベースから読み込む際に、すでにコメント数の多い順でソートされています。あとはそのまま表示するだけです。簡単です。





コメント数ランキングのソース


disp.php
<?php
/* ===============================================

コメント数ランキング

=============================================== */

// 表示する記事数
$disp_count = 6;

//DB読み込み
$result = $wpdb->get_results("SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , $disp_count");

$cmrank .= "<script type="text/javascript" src="". get_bloginfo("template_url") ."/tool/cmrank/script.js"></script>n";

$cmrank .= "<div class="cmRankFlame">n";
$cmrank .= "<ul class="cmRankGuide">n";

$count = 0;
foreach ($result as $post) {
setup_postdata($post);
$postid = $post->ID;
$title = $post->post_title;
$link = get_permalink($postid);
$comment_count = $post->comment_count;
$thumbnail = get_the_post_thumbnail($postid , array(155,116));

// 表示用整形
$cmrank .= "<li class="cmRankCell">";
$cmrank .= "<div class="comment_flame"><p class="comment">" . $comment_count . "<br />コメ</p></div>";
$cmrank .= "<div class="photo_flame"><a href="" . $link . "">" . $thumbnail . "</a></div>";
$cmrank .= "<div class="title_flame"><a href="" . $link . ""><span class="title" id="cm" . $count . "">" . $title . "</span></a></div>";
$cmrank .= "</li>n";

$count++;
}
$cmrank .= "</ul>n";
$cmrank .= "</div>n";

echo $cmrank;

wp_reset_query();
?>

12行目 データベースから記事を読み込み

 SQL文を使って、データベースから記事のデータを読み込みます。この時、コメント数でソートされた状態になっています。



14行目 JavaScriptファイルの読み込み

 jQueryなど使いたい場合は、このようにファイルの読み込みを含める事もできます。ファイルの読み込みが必要無ければ、この1行は必要ありません。



20-38行目 記事データを表示用に整形

 ループを使って記事のデータをhtmlに整形しています。ここは各自お好みでhtmlに整形して下さい。

 ポストIDからサムネイル画像を呼び出すには、

get_the_post_thumbnail(【ポストID】, array(画像幅,画像高さ));   とします。画像サイズを調整できるので便利ですね!


42行目 クエリーをリセット

 グローバル関数を使ってデータベースより記事を読み込んでいますので、最後にリセットして下さい。ここでリセットしないと、本記事の表示に悪影響が出ます。重要です。





 このように、コメント数ランキング表示用にdisp.phpを作成して、WordPressテンプレートに埋め込みます。

 埋め込み方は、下記のようにincludeで読み込んでもいいですし、disp.phpは作らずに、直接上のphpをテンプレートに書いてもokです。

<?php include (TEMPLATEPATH . '/tool/cmrank/disp.php'); ?>



 あとは表示したhtmlをCSSやjQueryでデザインして出来上がりです。WordPressの場合、リツイート数ランキングよりずっと簡単です!

 記事ができるだけ埋もれてしまわないように、こういったランキングなどを活用して工夫したいですね。







コメントを残す

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください