目次
コメント数ランキングの考え方
グローバル関数の$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の場合、リツイート数ランキングよりずっと簡単です!
記事ができるだけ埋もれてしまわないように、こういったランキングなどを活用して工夫したいですね。