Uncaught Error: Call to undefined function create_function() in ファイル名 エラーが出る理由と対処方法をご紹介いたします。

Call to undefined function create_function() エラーとは? このエラーが出る原因

Call to undefined function とは、定義されていない関数が呼ばれたことによるエラーという事になります。
つまりこのエラーはcreate_function()という関数がないのに呼ばれようとしたのでプログラムの動作を強制停止しましたよという意味になります。

create_function()関数は、PHP 8.0.0以降で廃止されました。
この為、ワードプレスを動作させているプログラミング言語であるPHPをPHP8に変更(アップデート)されるとCall to undefined function create_function()エラーが出てサイトが表示されなくなってしまう事例が増えております。

Call to undefined function create_function() エラーへの対処方法

対処方法で一番簡単なのはcreate_function()関数が使えるPHP7台にバージョンを戻すことになります。PHP7.4でも現在は多少古くなりつつあるものの、プラグイン等の対応状況も一番問題が少ないバージョンではあり、特に問題がないかとは思います。

その他の対処方法としましては、create_function()関数をPHP8でも使える関数に書き替えしていくという対処方法がございます。(この方法が今後のサイトの運営も考えると一番良いかとは思います)

例としまして

add_action( 'widgets_init', create_function( '', 'register_widget("layerslider_widget");' ) );

という関数は

add_action( 'widgets_init', function() {register_widget("layerslider_widget");});

と無名関数に書き換えることが可能です。

こちらのページ
https://wearedopethemes.medium.com/php-8-create-function-replacement-6e126cc55af0
にcreate_function() 自体を再定義してPHP8条でも動作するように作ってしまうコードの例もございます。ただ、この関数はeval(テキストをコードとして実行する)関数が使われていますので、セキュリティー上の問題が出てくる可能性もあります。
create_function()関数を一つ一つPHP8で動作するコードに書き換えていく方が安全で確実な方法と考えられます。

WordPress ワードプレスのサイトの復旧、バグの修正・安全なアップデートを専門家が代行します。ご依頼・ご相談はワードプレスドクターまでお気軽にお送りください