WordPress プラグイン RSS Antenna のWarningを修正

WordPressのプラグイン「RSS Antenna」を使って他のブログの投稿を埋め込んでいるサイトを作っていますが、ふと見るとサイトに Warningが表示されています。
表示は問題ないように思いますが、Warning表示されていると見栄えが良くないので PHPファイルを修正してみることにしました。

スポンサーリンク

Warningの内容を確認

Warningが出ている画面はこちら。

Warningの内容は以下の通り

Warning: Illegal string offset 'blogのURL' in /home/プラグインのあるURL/rss-antenna/rss-antenna.php on line 389

内容は一部文字を置き換えていますが、要するに文字列のオフセットが正しくないという意味だと思います。

該当するソースコードが明示されているので、今回は WordPressの管理画面で修正してみようと思います。

スポンサーリンク

ソースを修正する

管理画面のプラグインからプラグインエディターを選択します。

次にエディター画面の右上にあるリストボックスから「RSS Antenna」を選択して選択ボタンを押します。

するとRSS Antennaのファイルが編集可能となります。

rss-antenna.phpが表示されていることを確認したら、Warning表示されている389行目を確認してみます。

問題となっているのは部分は次のコードです。

$map[$url] = $img_url;

どうやらブログの画像をキャッシュするためのURLを保存する処理に問題がありそうです。

「Illegal string offset」が表示されるのは、配列処理に問題があることが多いようです。

今回の場合は、$mapという配列に $urlに該当するデータがないことが原因と思います。

$mapは 388行目で $options[“cache_map”]があれば、それを使うようになっていますので、根本的にはこちらを修正したほうがいいのではないかと考え、$options[“cache_map”]を初期化しているところを探してみました。

すると、22行目で初期化しているところがありました。

$options["cache_map"] = "";

となっていますが、これが配列宣言になっていないことが問題のようです。

そこで次のように修正します。

$options["cache_map"] = array();

これで配列として宣言したので、キャッシュ処理のところでも問題がないはずです。

スポンサーリンク

プラグインを再起動する

ソースを保存しただけでは、先ほど修正した個所は実行されません。

処理を実行するために、RSS Antennaを一度停止してから、再度、有効化する必要があります。

これで先ほど修正した個所が実行され、配列宣言されるので Warningが出なくなります。

スポンサーリンク

まとめ

RSS Antennaは設定も簡単で使いやすいプラグインですので、使っている人も多いと思います。

Warningが表示されるとサイトのデザインが崩れて見栄えが悪くなので、同じ現象が起きている方は自力で修正できますので参考にしてください。

WordPress
スポンサーリンク
スポンサーリンク
スポンサーリンク
カミヒロをフォローする
新・かみひろぐ

コメント

タイトルとURLをコピーしました