記事ページにアクセスしたら、Wordpressのカスタムフィールドにいいね数入れようかな。
それ自体はupdate_post_meta()で簡単に出来る。
やりたいこと
- 記事ページにいいねの数を表示したい
- 記事一覧にも表示したい
- 記事一覧で表示させる時に、都度API叩いたら怒られそうだからカスタムフィールドに入れ込んじゃう
- 記事ページにアクセスした時にカスタムフィールドの値を上書きしてしまおう
- カスタムフィールドに『いいね』の数が格納されてなければ、記事一覧ページにアクセスした時にでも格納しちゃおう
こんな感じでいい
記事ページにいいねの数を表示するのとカスタムフィールドのとこ
Facebook Graph APIで取得したいフィールドについてはフィールドの一覧で調べながら設定していくか、グラフAPIエクスプローラでいじくればいいと思う。
v2.10でも以下のコードで、バージョン部分だけ書き換えれば特に変わりなく取得出来る。
ただ、今後の仕様の変更は分からない。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
function get_facebook_like_count() { global $post; // v2.9とv2.10対応(2017.09.07) $url = 'https://graph.facebook.com/v2.9?fields=engagement&id='; $url .= get_permalink(); $url .= '&access_token=アクセストークン|アプリシークレット'; $json = file_get_contents($url); $json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN'); $arr = json_decode($json,true); $total = array_sum( $arr['engagement'] ); // カスタムフィールドをアップデート update_post_meta( $post->ID, 'happy_total', $total ); return $total; } |
engagementにlikeのカウントとか入ってる。
1 |
Array ( [reaction_count] => 157 [comment_count] => 2 [share_count] => 3 [comment_plugin_count] => 0 ) |
reaction_countが『いいね』された数
share_countが『シェア』された数
だと思うんだけど、Facebookのシェアの定義がよく分からない。『いいね』しても、いいねした人のウォールに掲載されるからシェアした事と一緒だと思ってる。
ということで、今回は全部の合計を返すようにしとく。
別々に取得したければ、足さなければいいだけの事。
記事一覧でも表示させつつ、以前に取得してなければ取得してやる
表示したいとこにぐちゃぐちゃ書くの嫌い。
1 2 3 4 5 6 7 8 9 10 |
function archive_facebook_like_count() { global $post; $happy_total = get_post_meta( $post->ID, 'happy_total', true ); if ( $happy_total == "" ) { $happy_total = get_facebook_like_count(); } return $happy_total; } |
あとは、アーカイブページだとarchive_facebook_like_count()を使って、singleページだとget_facebook_like_count()を使う。
function内で分岐させても良いけど、こっちの方がスマートだと思う。
- Facebook GraphAPI v2.9でいいね・シェア数をPHPで取得して表示 - 2017年9月7日
- phpstormのFilewatcherでautoprefixerを使う方法 - 2017年1月19日
- Custom Field Templateを使用してのプレビューを実装 - 2016年1月14日
- WordPress:WooCommerceを使ってみて分かったこと - 2013年7月5日
- 誰得なプラグイン Ultimate Google Analytics改をひっそりと公開します - 2013年6月4日
- プラグイン『WooCommerce Fields for Japan』を公開しました - 2013年4月21日
- 公式 WordPress.orgプラグインディレクトリでのプラグイン公開のススメ - 2013年4月17日
- WordPress:WooCommerceを日本仕様へと日本語化 - 2013年4月15日
- webクリエイター パソコンを買う。 - 2013年3月16日
- WordPress:『続きを読む』read moreをpタグで囲む - 2013年3月5日
0 comments found
Comments for: Facebook GraphAPI v2.9でいいね・シェア数をPHPで取得して表示