WordPressで突然発生したウィジェット関連の致命的なエラー(Fatal error)について、実際に起こったトラブルとその対処法をまとめました。
発生したエラー内容
ある日、WordPressの管理画面の「外観 → ウィジェット」を開こうとしたら、以下のようなエラーが出ました。
Fatal error: Uncaught TypeError: array_merge(): Argument #4 must be of type array, null given in …

これはかなり深刻そうです。
エラーの原因
このエラーは、array_merge() 関数に渡される引数の一つが null(空)であるのに配列であるべきところで起きています。
つまり、WordPressの内部でウィジェット情報を取得・合成する処理中に「壊れたデータ」が混ざってしまっているという意味のようです。
どう対処したか?
1. Classic Widgetsプラグインで旧エディターに戻すが解消せず

まずは、新しいブロックウィジェットエディターの不具合の可能性を疑い、Classic Widgetsプラグインで元のエディターに戻してみました。
→ しかし問題は解決せず。
2.テーマ切り替えを試みるも、さらに深刻なエラーに発展
テーマがPHP8に対応できていない事が問題ならテーマを変えることでウィジェットを修正できるようになるかと思い変更をしたところ、うっかり古いテーマに切り替えてしまいホームページも管理画面も全て表示できなくなってしまいました。
この方法は確実にPHP8に対応しているテーマに切り替えるのであればうまく行きそうではありました。
サーバーのPHPバージョンを落とせない場合には有効かもしれません。
エラーの理由と対処
create_function()はPHP7.2で非推奨になり、PHP8.0以降では削除された関数です。
古いテーマで使われているこの関数が原因で、現行のPHPバージョンで動かなくなっていたことがわかりました。
解決策
- XサーバーのPHPバージョンを一時的に7.4に下げる(
create_function()が使える環境に戻す)
これでウィジェット含めすべてが正常に表示できるようになりました。
まとめと今後の注意点
- WordPressのウィジェットエラーは内部データの破損が原因の場合が多い
- 古いテーマを使っている場合は、PHPのバージョンアップに伴い使えなくなる関数があるため注意
- テーマはできるだけ最新のものを使い、PHPバージョンも最新に近いものを維持するのが理想
もし同じようなエラーが起きたら、まずは焦らずに今回の対処法を試してみてくださいね。
また、テーマやPHPの互換性問題についても早めの対応がおすすめです。

飯田市でホームページ制作・広告運用をサポート|デザインスタジオiR
牧内理恵
まきうちりえ
飯田市在住、広告制作歴20年以上。これまで200名以上のクライアント様と向き合い、100件以上のサイト制作を手掛けてきたデザイナー兼エンジニアの牧内理恵です。御社の強みを引き出し、業績アップに繋がるWebサイト・ネットショップ・販促ツールをご提案します。拠点とする長野県内はもちろん、全国各地からのご依頼にも柔軟に対応しております。
「相談してよかった」と言っていただける、飯田下伊那地域のパートナーとして。
長野県飯田市を拠点に、ホームページ制作やECサイト構築、Web運用のトラブル解決を承っています。20年以上のキャリアで培った「伝わるデザイン」と「確かな技術」で、御社の業績アップを支えます。飯田・下伊那エリアはもちろん、全国からのオンライン相談も大歓迎です。
「ホームページを作りたい」「ホームページをリニューアルしたい」といったご依頼もお気軽にお声がけください。
※強引な勧誘は一切ありませんので、安心してお悩みをお聞かせください。


