感謝しきりのこのプラグインですが、長い間気になっていることがひとつ。それは、Facebookでのいいね!やシャア数のカウントができなくなっていること。Google+が仕様上カウントできなくなったことは僕にとってそう大きなことではなかったのですが、Facebookとなるとできればカウントしたいところ。Cacheでできれば完結したい気持ちがあり、プラグインの更新を待つことにしてここまで放置してきました。Cacheはもう8ヶ月ほど更新がない状態。何か対処しなくてはと思い、プラグイン自体を修正することにしました。結果シェア数をカウントできるようになったわけですが、プラグインファイルのコードに手を入れることになるので、暫定または最終手段といったところです。修正手順を書いていきますが、バックアップをとっておこなうようにしてください。APIの仕様が変わるかもしれませんしね。Secret”を登録するはずです。このfacebookのアプリで利用しているAPIのバージョンが今回のポイントとなってきます。0.11.1のコードでカウント数が取得できると思います。v2.9になるとそれができない。0.11.1のコードでは対応できないのです。ここで頭を悩ませられるのが、Facebookアプリで使用するAPIのバージョンは、前のバージョンを選択できないこと。v2.9以前のバージョンでアプリを作っていれば古いバージョンを選べるようですが、v2.9でアプリを作ったらv2.9以上しか選択できないようです。前のバージョンを選べないのであればコード側を直すしかない、というのが今回至った結論です。v2.9でいいね!・シェア数を取得してみること。Cacheのコードを見てもよくわからないですからね。APIを使ってシェア数をカウントする従来の方法は下記のようなURLでアクセスすれば取得可能でした。“https%3A%2F%2Fwww.islog.jp%2′′)アクセストークンがわからない場合は下記にアクセスするとわかりますよ。Secret”が必要です。Cacheのコードも上記のようになっていたのですが、試しに上記URLにアクセスするとわかりますが、以前はカウント数が入っていた”share”の項目も無くなっています。share項目はv2.9以上では非推奨となったようです。v2.9では、下記のようにする必要があります。TOKEN]このURLにアクセスして、実際にシェア数がカウントできるかを見ておくと安心です。"http://www.islog.jp/entry/◯◯◯/"}og_object内にあるengagement内のcountがシェア数(いいね!とシェアの合算)となります。Cacheのコードを修正していきます。Cacheの管理画面よりキャッシュ状況を確認してみます。Facebookの部分が「N/A」になっていて、やはり取得できていないですね。Cacheのコードを修正します。手を入れるのは、”/wp-content/plugins/sns-count-cache/includes/class-scc-share-facebook-strategy.php”です。build_query_urlファンクション内に手を入れます。TOKEN]」のURLが入っています。TOKEN]」の形にしなくてはいけません。$this->query_parameters['access_token'];上記のようにします。tokenが入っています。僕はそのトークンが間違っていたので直接記述しました。'ここにトークン記述';これでURL部分の修正は完了ですが、share項目が無くなったことで、このままではシェア数を取得することはできません。97行目付近のextract_countファンクション内も修正する必要があります。-1;}これが元のコードですが、下記のように変更します。-1;}具体的には、「$json[‘share’][‘share_count’]」を「$json[‘og_object’][‘engagement’][‘count’]」にしています。当初は上記の[‘og_object’][‘engagement’][‘count’]を取得していましたが、新規で投稿した記事では[‘og_object’]自体が取得データの中に無くカウント数が取れていませんでした。その問題は取得部分のコードを変更することで対応可能です。-1;}※PHPのバージョンが5.5以下の場合に記述エラーが発生しているとのご指摘があり、2017/11/27にコードを修正しました$json[‘og_object’]内のデータを取得するのではなく、$json[‘engagement’]内のデータを取得しています。シェアされた数をPHP上で合算している形です。Cacheの管理画面より手動でキャッシュをして確認してみると、Facebookのいいね!・シェア数がhttp・https合算で取得できました。ちなみに、管理画面より手動でキャッシュする際に、httpsのほうのシェア数が取れない場合は、sns-count-cache.php内の1155行目あたりを修正します。array(//self::REF_SHARE_POCKET,//self::REF_SHARE_GPLUS,//self::REF_SHARE_LINKEDIN,//self::REF_FOLLOW_TWITTER,//self::REF_FOLLOW_FACEBOOK,//self::REF_FOLLOW_PUSH7,//self::REF_FOLLOW_INSTAGRAM);元はコメントアウトされていないわけですが、上記のようにコメントアウトすることで、手動のキャッシュでhttps側のシェア数も取得できるようになります。Facebookでのシェア数のカウントができなかったのが気になっていたのですが、今回の修正でしばらくはこのまま使えそうです。本当はプラグイン自体の更新があると安心なのですが、SNSのシェア数カウント用のAPIは仕様変更も多いのでメンテナンスが大変なのでしょうね。プラグイン自体は文句なく優秀なものなので、自分で出来る範囲は誤魔化しながら利用できればと考えています。Google+のほうもAPIが動くようになったらやってみようかと。97が返されてしまいます。対処方法などありますでしょうか...。PMyou-kiさんPHPのバージョン違いのエラーが考えられます。PMありがとうございます!!!エラーは返されなくなりました!ところが、facebookのシェア数は全て0になっており、数値を取得できておりません。TOKEN]こちらから見ると一応シェアは0ではありません。これもPHPのバージョンで何か別の場所も記述を変えないといけないのでしょうか。無知でお恥ずかしいのですが、お教えいただけますと幸いです。こちらから見ると一応シェアは0ではありません。下記のようになっているかと思います。“URLが入ります”}上記のような形でしょうか?追記した部分では、下記のreaction_count・comment_count・share_countを合算してカウントしています。下記の$countにカウント数が代入されています。Cacheの管理画面から、シェアがある記事のキャッシュを押してみてください。ページ上部にカウント数が出力されるかと思います。Cacheなどのバージョンやサーバ環境)によるもののどちらかとなるかと思います。前者であればまだこちらでも考えられることがありますが、後者の場合は残念ですが環境諸々お聞きして実際のコードを見ないとわからないです。AMishikawaさん、ありがとうございます!そして、再度最初からやりなおしてみた結果、(PHPのバージョン違いのコードも入れ直し)ちゃんとシェア数を取得することができました!どうやら、どこかで記述ミスがあったのかもしれません...。お手数をおかけしてしまい、申し訳ございませんでした。本当にありがとうございます。PMとても分かりやすい記事をありがとうございました。Cacheのほうで「N/A」と表示されていたものが「0」に変わりました。上記のURLでシェア数などを調べてみるとシェアされていて数字がちゃんと表示されます。なにか原因になりそうなところがありましたら、教えていただけると助かります。上記のURLでシェア数などを調べてみるとシェアされていて数字がちゃんと表示されます。APIを直接叩くとシェア数が0ではないということでしょうか?これまでのコメント欄でのやりとりにも同様の現象がありましたので、参考にしていただければと思います。PMこちらを参考にコードを修正したところ、カウント数が無事表示されたのですが、「HTTPからHTTPSへのスキーム移行モード」を有効にしても、httpsのカウント数のみ表示され、httpのカウント数との合算になりません。APIでhttpsとhttpそれぞれのカウントを見てみると、httpsで1件とhttpで2件あるため、3と表示されるはずなのですが、どのあたりを調べてみるといいでしょうか?もしよければアドバイスをいただけると助かります。PM先程httpとhttpsの合算にならないとご相談させていただきましたが、sns-count-cache.php内の1155行目付近のコメントアウトをしたところ合算数が表示されました。*メールアドレス(公開はされません。筆者(ishikawa)プロフィールウェブサイト制作・ブログ運営などをおこなうフリーランス。仕事関係ではウェブの世界にどっぷり浸かっているが、趣味はアウトドア。〜イズログ〜旅行・旅先でのグルメ情報を中心に綴る雑記ブログ。FISH釣りや釣った魚を調理して食べる釣り飯をメインにキャンプなどのアウトドアについて綴るブログ。大切な人や自分へのプレゼント・ギフトに、オモイを伝えられる素敵なモノを紹介・販売しています。無料で使えるウェブツール集。随時追加していきます。当ブログに掲載するコンテンツ(テキスト、画像等)を無断に複製・転用することを禁止します。