WordPress を PHP 5.3 以降の環境で Exec-PHP を使っていたら Deprecated メッセージが表示されて困った:解決

問題

最近だんだんと、ホスティング サーバーの PHP のバージョンが 5.3 以降になりつつありますが、この環境で WordPress に Exec-PHP プラグインを使おうとすると、次の様な Deprecated メッセージが表示されてしまいます。

[code lang=’text’] Deprecated: Assigning the return value of new by reference is deprecated in /home/child/public_html/wp-content/plugins/exec-php/exec-php.php on line 22
Deprecated: Assigning the return value of new by reference is deprecated in /home/child/public_html/wp-content/plugins/exec-php/includes/manager.php on line 36
Deprecated: Assigning the return value of new by reference is deprecated in /home/child/public_html/wp-content/plugins/exec-php/includes/manager.php on line 37
Deprecated: Assigning the return value of new by reference is deprecated in /home/child/public_html/wp-content/plugins/exec-php/includes/manager.php on line 38
Deprecated: Assigning the return value of new by reference is deprecated in /home/child/public_html/wp-content/plugins/exec-php/includes/manager.php on line 39
Deprecated: Assigning the return value of new by reference is deprecated in /home/child/public_html/wp-content/plugins/exec-php/includes/admin.php on line 53
Deprecated: Assigning the return value of new by reference is deprecated in /home/child/public_html/wp-content/plugins/exec-php/includes/admin.php on line 56
Deprecated: Assigning the return value of new by reference is deprecated in /home/child/public_html/wp-content/plugins/exec-php/includes/admin.php on line 57
Deprecated: Assigning the return value of new by reference is deprecated in /home/child/public_html/wp-content/plugins/exec-php/includes/admin.php on line 63
Deprecated: Assigning the return value of new by reference is deprecated in /home/child/public_html/wp-content/plugins/exec-php/includes/admin.php on line 64
Deprecated: Assigning the return value of new by reference is deprecated in /home/child/public_html/wp-content/plugins/exec-php/includes/admin.php on line 79
Deprecated: Assigning the return value of new by reference is deprecated in /home/child/public_html/wp-content/plugins/exec-php/includes/cache.php on line 22
Deprecated: Assigning the return value of new by reference is deprecated in /home/child/public_html/wp-content/plugins/exec-php/includes/cache.php on line 39
Deprecated: Assigning the return value of new by reference is deprecated in /home/child/public_html/wp-content/plugins/exec-php/includes/ajax.php on line 64
[/code]

原因

これは、PHP 5 以降では new キーワードで生成されたオブジェクトは参照渡しになるのに、参照渡しのための「=&」演算子で代入してしまっているのが原因で、非推奨(Deprecated)である事を示すメッセージが表示されたと言うものです。

解決方法

メッセージを隠す

「error_reporting」で表示しないようにする、と言うのは一つの方法でしょうかね。
次のコードを適当な PHP ファイルに含めてあげましょう。
メッセージを隠すことができます(が、問題を先延ばししただけです)。

[code lang=’php’] error_reporting(E_ALL ^ E_DEPRECATED);
[/code]

プログラムを変更する

上記の原因である参照渡しを止めるようにプログラムを直接変更する方法です。

Exec-PHP 4.9 で該当のコードを変更したファイルを置いておきます。
作者に許可も取っていませんので、自己責任でお使いください。

PHP 5.3 対応の exec-php.zip

解凍して「/wp-content/plugins/」に配置、「有効化」してください。
クレジットなども一切弄っていません。

え?Webサイトのバックアップ、してないの!?

いざという時には復旧までしてくれる
『ワードプレス外部バックアップサービス』

■3つの特長
・自分でやらなくて良い
・いざという時の復旧付き
・外部サーバーにバックアップ

WordPress を PHP 5.3 以降の環境で Exec-PHP を使っていたら Deprecated メッセージが表示されて困った:解決” に対して1件のコメントがあります。

コメントを残す