wordpressをPHP7.3で使うと「Notice」「Deprecated」のエラー表示がされる対応

PHP

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
  )
) . ']';

コメント

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