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

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


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

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

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





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


disp.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php<br>
/* ===============================================<br>
<br>
 コメント数ランキング<br>
<br>
=============================================== */<br>
<br>
// 表示する記事数<br>
$disp_count = 6;<br>
<br>
//DB読み込み<br>
$result = $wpdb->get_results("SELECT comment_count,ID,post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , $disp_count");<br>
<br>
$cmrank .= "<script type="text/javascript" src="". get_bloginfo("template_url") ."/tool/cmrank/script.js"></script>n";<br>
<br>
$cmrank .= "<div class="cmRankFlame">n";<br>
$cmrank .= "<ul class="cmRankGuide">n";<br>
<br>
$count = 0;<br>
foreach ($result as $post) {<br>
    setup_postdata($post);<br>
    $postid = $post->ID;<br>
    $title = $post->post_title;<br>
    $link = get_permalink($postid);<br>
    $comment_count = $post->comment_count;<br>
    $thumbnail = get_the_post_thumbnail($postid , array(155,116));<br>
<br>
    // 表示用整形<br>
    $cmrank .= "<li class="cmRankCell">";<br>
    $cmrank .= "<div class="comment_flame"><p class="comment">" . $comment_count . "<br />コメ</p></div>";<br>
    $cmrank .= "<div class="photo_flame"><a href="" . $link . "">" . $thumbnail . "</a></div>";<br>
    $cmrank .= "<div class="title_flame"><a href="" . $link . ""><span class="title" id="cm" . $count . "">" . $title . "</span></a></div>";<br>
    $cmrank .= "</li>n";<br>
    <br>
    $count++;<br>
}<br>
$cmrank .= "</ul>n";<br>
$cmrank .= "</div>n";<br>
<br>
echo $cmrank;<br>
<br>
wp_reset_query();<br>
?>

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です。

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



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

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







コメントを残す

*

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

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