create_functionがエラーを吐く

WEB開発
この記事は約2分で読めます。
スポンサーリンク

ワードプレスのfuction.phpにはcreate_functionがあり、これが古いテーマだと新しい関数に対応していない。
以下のような表記が出てしまう。

Deprecated: Function create_function() is deprecated in

create_functionとは
https://www.php.net/manual/ja/function.create-function.php

PHP7.2で非推奨となり、PHP8.0では削除されています。
代わりに無名関数を使用するように書かれています。
こちらを利用することで、eval関数を利用せずに、よりネイティブな書き方になるようです。
セキュリティ的にも速度的にも良さそう

add_action('widgets_init', create_function('', 'return register_widget("{ここにコード}");'));
add_action('widgets_init', function(){register_widget('{ここにコード}' );});

こう書き換えるだけです。
無名関数でシンプルにかけるので、create_functionはいらない子ですね

PHP8に備えてcreate_functionを修正する
PHP7.1からPHP7.2にアップデートしたところDeprecatedが出ました。create_function関数が非推奨になったとのことなので早速修正します。

コメント

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