ここまで、Facebookページのアクセストークンを使って、ホームページ上にショートコードでFacebookのタイムラインを表示させようとしてきました。そして、たしかに成功はしました!
が、実装してみたところ、読み込みに時間がかかりすぎて、WordPressのホームページ自体がなかなか表示されないようになってしまいました(涙)。なので、ショートコードでの表示は諦めることにします。WordPressをかませないで単純にphpのページで表示させようとしても時間がかかるので、Facebook側の仕様なのかな、と思います。読み込ませ方に工夫が必要だったのかもしれませんが、うまくいかないものですね。
ただ、このまま引き下がるのも悔しいので(笑)、phpファイルを読み込むためのショートコードを作成して、Facebookページのタイムラインを表示させるコードを外部ファイルから読み込むようにしてみました。こんなふうに表示させることができます。
phpファイルをインクルードさせるためのショートコードはこちらを参考にしました。【wordpress】投稿・固定ページ内にPHPファイルをインクルード(挿入/実行)させる最近,気がつけばwordpressネタばかりになってきてます。 かわたまです。 wordpressで固定ページや記事内にも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++;
}
}
?>
