PHP7.3にバージョンアップすると、wordpressのプラグインのエラーで「Notice」「Deprecated」が表示されてしましました。その対応をまとめておきます。
php.iniや.htaccessでエラー表示抑制
手っ取り早い方法で行きます。
本来は該当の箇所を修正するのが正しいのですが、とりあえずエラー表示をさせない方法です。どちらかでOKです。
php.iniの編集
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
.htaccessの編集
php_value "error_reporting" "E_ALL & ~E_NOTICE & ~E_DEPRECATED"
「Deprecated」のエラーが出るプラグインを直接修正
これをやると、プラグインがバージョンアップされる度に修正しないと行けないです。プラグインがきちんと修正してくれたら不要になりますが。
Deprecated: Function create_function() is deprecated in /var/www/public_html/wp-content/plugins/wordpress-23-related-posts-plugin/init.php on line 447
の様に、 line XXX と言う表記があると思います。そのか所でエラーとなっています。
じゃあ、とのファイルかって言うと、「 /var/www/public_html/wp-content/plugins/wordpress-23-related-posts-plugin/init.php 」のファイルです。
今回は、create_function と言うPHPの関数が非推奨になっているので、それを非推奨でない記述に修正する必要があります。私と同じ関数で同じ様なか所の場合は、コピペで行けるかも知れませんが、理解出来ない人は、編集は辞めましょう。自己責任でお願いします。
wordpress-23-related-posts-plugin/init.phpのバックアップ
同じディレクトリで良いので、バックアップファイルを作成します。init.phpをコピペしファイル名を「init.php.bak」とでもしましょう。
編集
$post_tags = '[' . implode(', ', array_map(create_function('$v', 'return "\'" . urlencode(substr($v, strpos($v, \'_\') + 1)) . "\'";'), $tags)) . ']';
のか所を探し、下記のように変更してください。
$post_tags = '[' . implode(', ', array_map(
function( $v ){ return "'" . urlencode(substr($v, strpos($v, '_') + 1)) . "'"; }
, $tags
)
) . ']';
コメント
[…] wordpressをPHP7.3で使うと「Notice」「Deprecated」のエラー表示がされる対応 […]