jQuery で Twitter のツイート数や、Facbeook のいいね数を表示する方法が人力検索はてなに掲載されていたので、これに「はてブ」も加えて、WordPressの記事毎にjQueryでSNSのカウント数(いいね数やツイート数など)を表示する方法をまとめてみました。
2013年6月11日 に実施される Twitter API の仕様変更までの間は、ツイート数は表示されると思います。変更後は様子を見てから考えます。
Javascript のコード追加
jquery ファイルと一緒に、以下のコードを <head> 内に追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
<script type="text/javascript" src="./jquery.min.js"></script> <script type="text/javascript"> function get_tweet_count(url, postid) { $.ajax({ url : 'https://graph.facebook.com/' + url, dataType : 'jsonp', success : function(json){ $('#' + postid + ' .facebook .count').text( json.shares || 0 ); } }); $.ajax({ url : 'http://urls.api.twitter.com/1/urls/count.json?url=' + url, dataType : 'jsonp', success : function(json){ $('#' + postid + ' .twitter .count').text( json.count || 0 ); } }); $.ajax({ url : 'http://api.b.st-hatena.com/entry.count?url='+ url, dataType : 'jsonp', success : function(json){ $('#' + postid + ' .hatena .count').text( json || 0 ); } }); } </script> |
WordPress のループの中の処理
テンプレートファイルの index.php や archive.php 内に以下のコードを挿入します。カウント数を表示させる場所はデザインによると思いますが、以下のサンプルでは10 〜20 行目がカウント数表示のコードになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <?php /* ここらへんに記事のタイトルとか本文とかがくる */ ?> <div id="sns-<?php the_ID(); ?>"> <div class="facebook">いいね: <span class="count"></span></div> <div class="twitter">ツィート: <span class="count"></span></div> <div class="hatena">はてぶ: <span class="count"></span></div> </div> <script type="text/javascript"> $(function() { get_tweet_count('<?php the_permalink(); ?>', 'sns-<?php the_ID(); ?>'); }); </script> <?php endwhile; ?> <?php endif; ?> |
SNSボタンのデザインは自由に
ブログやサイトに合わせてCSS でデザインを補正をします。各SNSのアイコン画像を使う場合は、以下のように
class="facebook"
class="twitter"
class="hatena"
の後ろは空値にして、カウント数を表示できるスペースを確保します。
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 |
/*CSSの記述*/ <style> div.sns { float:left; width:20px; height:20px; margin-left:20px; margin-right:20px } div.facebook { background:url(./facebook.png); } div.twitter { background:url(./twitter.png); } div.hatena { background:url(./hatena.png); } span.count { padding-left:30px } </style> /*HTMLの記述*/ <div id="sns-<?php the_ID(); ?>"> <div class="sns facebook"><span class="count"></span></div> <div class="sns twitter"><span class="count"></span></div> <div class="sns hatena"><span class="count"></span></div> </div> <script type="text/javascript"> $(function() { get_tweet_count('<?php the_permalink(); ?>', 'sns-<?php the_ID(); ?>'); }); </script> |
ものすごい簡単なサンプルを以下のページに用意しています。
ツイート数やいいね数 の表示デモ
参考ページ
ツイート数といいね数をajaxで表示したい
コメント