常時SSL化して失われたFacebookの「いいね!」数を取り戻すことに成功したよ!!
はじめに
閃いた(笑
出来ました。
ごめんなさい
以前、このような記事を上げました。
nuruta2.hatenablog.com
出来ませんという嘘八百な結論を出していた訳です。
お恥ずかしい。
別件でカスタマイズをしている時に、いいね数取得のコードを見ていて「あれ?これ簡単に出来るんじゃね?」と思いついたのです。
コードを弄ること、10分。
呆気なく出来ましたので、公開しますw
コード
//Facebookのシェア数 function getFacebookCount(entryUrl, selcter) { entryUrl = 'https://graph.facebook.com/' + encodeURIComponent(entryUrl) $.ajax({ url:entryUrl, dataType:'jsonp' }).then( function(result){ if(result.share && result.share.share_count) { var fb_count = parseInt($(selcter).text()) + parseInt(result.share.share_count); $(selcter).text(fb_count); } } ); } $(function(){ $('.facebook-count').text('0'); getFacebookCount('{Permalink}', '【ここに表示させたいタグのid又はクラス名】'); var plink = '{Permalink}'; plink = plink.replace("https","http"); getFacebookCount(plink, '【ここに表示させたいタグのid又はクラス名】'); });
解説
getFacebookCount()関数に引数を渡して、いいね数を取得しています。
この関数自体は他のブログさまで公開されているものに、僕が少し手を加えたものになります。
引数は
第1引数に記事のURL。
第2引数に「いいね数を表示させたいタグのIDまたはクラス名」。
2度この関数を呼び出しています。
1度目で新url(httpsで始まる現行のURL)のいいね数を取得。
2度目で旧url(httpで始まる昔のURL)のいいね数を取得。
2つのいいね数を合算しています。
ご使用いただくために
上記コードの
【ここに表示させたいタグのid又はクラス名】
2か所を書き換える必要があります。
例えば、
<!--Facebook--> <a href="~" ><span class="facebook-count">ココに入れたいよ</span><br><span>Facebook</span></a>
こんなタグが用意されていたら、クラス名が「.facebook-count」となってますので、
(省略) getFacebookCount('{Permalink}', '.facebook-count'); var plink = '{Permalink}'; plink = plink.replace("https","http"); getFacebookCount(plink, '.facebook-count'); }); });
となります。
classなら頭に「.」(ドット)を付ける。
idなら頭に「#」(シャープ)を付ける。
このルールはCSSと同じです。
もしかしたら、他のコードと相性が悪くて、正常に動作しないかもしれません。
予め元コードのコピーを取った上、申し訳ありませんが自己責任でご使用願います。
終わりに
申し訳ありませんが、idコールさせてもらいます。
あにお (id:aniota-alvarado)さん。
間違った記事を上げてしまい、誠に申し訳ありませんでした。