6.Facebookページのショートコードに失敗したので….

ここまで、Facebookページのアクセストークンを使って、ホームページ上にショートコードでFacebookのタイムラインを表示させようとしてきました。そして、たしかに成功はしました!

が、実装してみたところ、読み込みに時間がかかりすぎて、WordPressのホームページ自体がなかなか表示されないようになってしまいました(涙)。なので、ショートコードでの表示は諦めることにします。WordPressをかませないで単純にphpのページで表示させようとしても時間がかかるので、Facebook側の仕様なのかな、と思います。読み込ませ方に工夫が必要だったのかもしれませんが、うまくいかないものですね。

ただ、このまま引き下がるのも悔しいので(笑)、phpファイルを読み込むためのショートコードを作成して、Facebookページのタイムラインを表示させるコードを外部ファイルから読み込むようにしてみました。こんなふうに表示させることができます。

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++;
}
}
?>