6.Facebookページの投稿記事をWordPressサイト上に表示するコード
ここまで、Facebookページのアクセストークンを使って、ホームページ上にショートコードでFacebookページの投稿記事を表示させようとしてきました。そして、たしかに成功はしました!
が、実装してみたところ、読み込みに時間がかかりすぎて、WordPressのホームページ自体がなかなか表示されないようになってしまいました(涙)。なので、ショートコードでの表示は諦めることにします。WordPressをかませないで単純にphpのページで表示させようとしても時間がかかるので、Facebook側の仕様なのかな、と思います。読み込ませ方に工夫が必要だったのかもしれませんが、うまくいかないものですね。
ただ、このまま引き下がるのも悔しいので(笑)、phpファイルを読み込むためのショートコードを作成して、Facebookページの投稿記事を表示させるコードを外部ファイルから読み込むようにしてみました。こんなふうに表示させることができます。
phpファイルをインクルードさせるためのショートコードはこちらを参考にしました。
facebook_feed.phpというファイルを作成してテーマフォルダにアップロードし、表示させたい固定ページで[myphp file='facebook_feed']を記述して呼び出します。
<?php print '<h4>【Facebookページのタイトル】</h4>'; $url = 'https://graph.facebook.com/【FacebookページのID】/?fields=posts{id,message,story,created_time,full_picture,picture,permalink_url}&access_token=【Facebookページの無期限のアクセストークン】&locale=ja_JP'; $jsonData = file_get_contents($url); $json = json_decode($jsonData, true); $i=0; foreach ($json['posts']['data'] as $data) { if (empty($data['message'])){ continue;} else { if ($i >4){ break;} else { $f_contentStr = $data['message']; $f_permalink = $data['permalink_url']; $f_contentStr = strip_tags($f_contentStr); // テキスト取得 $f_contentStr = preg_replace("/(\015\012)|(\015)|(\012)/", "", $f_contentStr); // 改行を削除 if (isset($data['full_picture'])) { $f_pic = $data['full_picture']; }else{ $f_pic = "【ダミー画像のURL】"; // 画像がなかったら代わりの画像を } $f_date = $data['created_time']; $f_date = mb_substr($f_date,0,10); print "<div>" . $f_date . "<p>" . $f_contentStr . "</p>"; print "<a href='" . $f_permalink . "' target='_blank'><img class='aligncenter' src='" . $f_pic . "' width='500'></a>"; print "<br clear=all></div><hr>"; } $i++; } } ?>