WordPress プラグイン

SNS Count Cache で Facebook のシェア数が表示されない問題の対処方法

当サイトはアフィリエイト広告を利用しています。

eye_wp

「SNS Count Cache で Facebook のシェア数が取得できない問題」ですが、暫定的な解決方法を紹介してくださっている記事があったので当ブログでも参考にさせていただきました。

やろうやろうと思ってたんだけど遅くなっちゃった。
SNS Count Cacheを使っていて、まだFacebookのシェア数が表示できていない方は参考にしてみてください。

【追記:2016.11.28】
このページの方法は古くなりました。
「SNS Count Cache」は現在(2016年11月)有効にしただけだとTwitter、Facebook、Pocketのシェア数が表示されません。シェア数を復活させる方法はこちらの記事を参考にしてください↓

【2016年11月版】SNS Count Cache で Twitter、Facebook、Pocket のシェア数を復活させる方法まとめ
SNSのシェア数を取得できて、サイトの高速化もできる便利なプラグイン「SNS Count Cache」ですが、SNS側の仕様変更によりシェア数が上手く取得できないことが度々ありました。 このブログでもTwitter、Facebookのシェア数を復活させる方法を紹介してきましたが、Facebookのシェア数取得は不安定だったり、最近ではPocketのシェア数も取得できなくなっています。 ということで、現時点(2016年11月)で最新バージョンの「SNS Count Cache(Var. 0.10.0)」でTwitter、Facebook、Pocketのシェア数を復活させる方法を紹介したいと思います。

シェア数が表示されないのはFacebookの仕様変更のせい

SNS Count Cacheではシェア数の取得先として非公式のAPIエンドポイントを使っていたんですが、それがFacebookの仕様変更で使用不可になってしまったそうです。

そこで公式APIを使ったバージョン(Ver. 0.9.2)がリリースされたんですが、この公式APIは時間あたりのコール数に制限があるので、制限に達してしまうとシェア数が取得できなくなってしまうんですね。

そのためSNS Count Cacheの新しいバージョン(2016年9月22日時点でVer. 0.9.3)でも動作が不安定で、Facebookのシェア数が取得できなかったりしていました。

しかし今回ご紹介する方法であれば、600秒に600回までコール数の上限を上げることができるので、ほぼ制限なくシェア数を取得して表示できるようになります。
それでは早速やってみましょう!

SNS Count Cacheのファイルを修正する

SNS Count Cacheのプラグインフォルダの中にあるファイルを2箇所編集します。FTPクライアントソフトなどでサーバーにあるファイルをダウンロードして編集しましょう。

SNS Count Cacheが入っているディレクトリの中から「class-share-facebook-strategy.php」を探します。

ファイルの場所は「wp-content / plugins / sns-count-cache / includes」の中です。

またはWordPress管理画面の「プラグイン」をクリックしてからSNS Count Cacheの「編集」からでもファイルの編集ができます↓

snscountcache_edit1

「編集」をクリックすると右側にファイルがたくさん出るので該当ファイルを探してください↓

snscountcache_edit2

ファイルを見つけたら35行目のこのコードを探してください↓
行数が分からない時は「command + F」(windowsは Ctrl + F)で文字列を検索するとすぐに見つかると思います。

const DEF_BASE_URL = 'https://graph.facebook.com/';

見つけたらこのように変更します↓

const DEF_BASE_URL = 'https://graph.facebook.com/?access_token=appid|appsecret';

最後の部分「access_token=appid|appsecret‘;」の赤字の部分をそれぞれFacebook Developerで作成したアプリIDとapp secretに置き換えてください↓

fb-appid-appsecret

Facebook Developerってなんぞや?っていう方はこちらの記事で分かりやすく解説してくださっているので参考にしてみてください↓

iscle [イズクル]
あなたの「役立つ」を提供するコラム。話題の商品やツール、アプリの情報を提供します。

次に同じファイルの79行目を編集します。
変更前がこちら↓

$url = self::DEF_BASE_URL . '?' . http_build_query( $this->query_parameters , '' , '&' );

このように変更してください↓

$url = self::DEF_BASE_URL . '&' . http_build_query( $this->query_parameters , '' , '&' );

「self::DEF_BASE_URL . ‘?‘ .」の ?& に変わっただけですね。

修正したらサーバー上にアップして元のファイルを上書きすれば、Facebookのシェア数が取得されるようになります。

キャッシュされるまでしばらく待つか、「キャッシュ状況」のページで「キャッシュ」のボタンを押せば手動でキャッシュできます。

SNS Count Cacheが更新されたら

もしSNS Count Cacheがバージョンアップされた場合、プラグインを更新すると今回修正した部分は全て上書きされるので注意が必要です。

もしかしたら次のバージョンアップでもFacebookのシェア数が取得できないかもしれないので、更新する前に内容を確認するのを忘れないようにしてください。

今回参考にさせて頂いた記事はこちらです↓

「SNS Count Cache」のFacebookカウント数取得できない問題を暫定的に解決した
WordPressプラグイン「SNS Count Cache」。先日からFacebookのカウント数取得ができないということで、いろいろ調べてみた結果、暫定的ではありますが、プラグインのファイルを一部書き換えて暫定的ですが解決しました。

comment

タイトルとURLをコピーしました