便利な「Wp Facebook Portal」とエックスフリーで画像が取得できず悪戦苦闘

Facebookの投稿を自動的にWordPressのブログに投稿したい

今日は建設・宅建のご依頼で外出することもなく、自宅で書類作成に明け暮れていましたが、とある方から、Facebookで投稿した内容を、自動的にWordPressのブログに投稿したいという相談を受けました。

WordPressロゴ

プラグイン「Wp Facebook Portal」を利用する

「普通は逆でしょ?」と思うのですが、Facebookの方が投稿しやすいという人もいるようで、WordPressのプラグインにありました。
Wp Facebook Portal」という日本人の方が制作のプラグイン。

ただし、最終開発から2年経過しているようで。
最新のバージョンで使えるのが不安でした。

結論から言うと、すんなりできました。
やり方は検索すると出てきます。

画像を引っ張ってきてくれない問題発生

問題点が。
本来ならば画像も投稿されるはずが、画像は引っ張ってきてくれていない。

なぜなのか?
少し沼にハマった気分でしたが、なんとか解決。

なぜできなかったかという理由が、無料ホームページサーバー(Xdomain[現・エックスフリー])が、外部のFacebookから画像を取得する“file_get_contents()”で、PHP.iniの設定で”allow_url_fopen=on”にできないから。

PHP.iniの設定自体は多少できるのですが、“allow_url_fopen=on”にできないのです。
※これができればすんなり行ったのですが…

なので、“file_get_contents()”の部分をcURLで書き換えないといけないのです。
※ここらへん定義とか説明メチャクチャかもしれません。
いろいろ検索して、以下の方法で取得できました。

解決方法

あ、この方法が間違ってたり、この編集で何かあっても責任取れませんので、念のため。
質問も受け付けません。

wp-facebook-portal→core→class-common.phpファイルの中の

$img_data = file_get_contents($photo_url);

の1行を丸々以下のようにコピペで置き換えます。

$img_data = “”;
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt( $ch, CURLOPT_URL, $photo_url);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$img_data = curl_exec($ch);
curl_close($ch);

これで、画像が取得できるようになると思います。
ただ、私もPHPにそんなに明るくないので保証はしません。
WordPressはちょっとでも記述が変だとエラーになってしまうので、バックアップだけは取っておいてください。

検索してみると結構悩んでる方も多いようで、一応、私の解決法の紹介でした。

大倉事務所のホームページでも便利そうなので利用しようかと思いましたが、ブログを更新した方が早いので、様子見です。