Facebookシェア数を取得するWordPressカスタマイズ方法

2019年4月18日にFacebookの古いAPI(v2.8)のサポートが終了しました。

Graph API Changelog

新しいAPI(v2.9以降)では、Facebookのアクセストークンを取得していないとシェア数を取得できなくなりました。

以下では、その仕様に対応した「WordPressでFacebookシェア数を取得する方法」を備忘録がてら紹介します。

スポンサーリンク
レクタングル(大)広告

主な手順

シェア数を取得する手順としてはこんな感じです。

  1. Facebookアクセストークンを取得する
  2. functions.phpにシェア数取得関数を記入する
  3. シェア数を表示させたいテンプレートにコードを書く

一番面倒くさいところは、コードを書く事ではなく、アクセストークンの取得になるかと思います。

Facebookアクセストークンを取得する

古いFacebook APIの仕様では、特別な設定をせずともシェア数は取得できました。

けれど新しい仕様のFacebook APIでは、アクセストークンの取得が必須になりました。

また、戻り値の格納方法も変更されています。

アクセストークンの取得方法は、以下の方法を参考にしてください。

Facebook for Developersにアプリを作成して、アクセストークンを取得しシェアカウントを取得する方法です。

取得したアクセストークンは、あとでコードを書く際に利用します。

functions.phpにシェア数取得関数を記入する

まずはテーマ(子テーマ)のfunctions.phpに以下のコードを貼り付けます。

貼り付け後、以下の部分に取得したアクセストークンを入力してください。

新しいFacebook APIは戻り値が変わりました。

今回の関数ではシェア数として「リアクションカウント」を採用しました。

新仕様のFacebook APIで戻されるJSON

シェア数を表示させたいテンプレートにコードを書く

あとは、投稿・固定ページで利用されているテンプレートの「Facebookシェア数」を表示させたい箇所に以下のコードを挿入します。

上記のコードを挿入する部分は、使用しているテーマによって変わります。ですので、挿入部分に関しては各自で調べていただく必要があります。

動作確認

テンプレート出力コードを挿入し投稿画面を確認してみると、以下のようにシェア数を出力させることが可能です。

シェア数表示の動作確認

まとめ

今回の方法で、Facebookシェア数を出力させることが可能になります。

ただ、アクセストークンを使用した方法であっても、Facebook利用には制限があります。

ですので、実際に利用するには取得したシェア数を一旦キャッシュして、次回シェア数が必要な時は、一定期間キャッシュから呼び出すようにして、APIの負荷を軽減する処理を追加する必要はあるかと思います。

ただ、キャッシュ処理に関しては「Facebookシェア数の取得」という範疇から外れますし、書き込むと多少処理が複雑になるので、今回は触れません。

実装する場合は、それぞれで処理を追加してください。

最も簡単な方法としては、WordPressのget_transientset_transient関数を用いると比較的容易に実装できるかと思います。