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