NeGiMeMo.net

ねぎさんのメモ帳。日常・メモ・ときどきWordPress。

Call to undefined function wp_json_encode() と言われてWordPressの管理画面にログイン出来ない場合の対処法

bell賞味期限切れコンテンツ

この記事は公開または最終更新から955日くらい経過しています。
このメッセージが表示されている記事(特にプログラミング系)は情報が古くなっている可能性があるので注意して下さい。

昔、自分が入社するよりも前に製作を担当したらしいお客さんからの問い合わせで、アップデート後に管理画面にログインできないという問い合わせがあったので、少し調べてみたお話。

ブログ自体はちゃんと表示されているし、ログインページにも移動できるのですが、ログインするとダッシュボードが真っ白になってしまうという状態でした。

とりあえず真っ白になってる時はだいたいどこかでエラーがでて止まってるので、 WP_DEBUGを有効にします。

で、あらためてログインしてみると、以下の様なエラーが出ていました。

Fatal error: Call to undefined function wp_json_encode() in (WordPressのパス)\wp-includes\class.wp-scripts.php on line 186

このクライアントさんは以前にもテーマが原因で問題が発生したことがあったので、とりあえずテーマを戻してみたりとかいろいろ試したんですが、どうにもダメで、エラー名とかで検索してみたところ、フォーラムにそれっぽいトピックを発見。

WordPress › Support » Fatal error after 4.1 Upgrade

これによると、どうも4.1から追加された wp_json_encode() という関数が定義されているファイルが更新できてないのかな?あるいはなんかの拍子に巻き戻ってしまったのかも…?

なんにしても、アップデートしたバージョンと同じバージョンの WordPress 本体をダウンロードしてきて、 wp-includes/functions.php を差し替えてあげればOKぽいですね。

よくわからなければ、最新版を落としてきてまるまる入れ替えるのも手かもしれません。
どちらの方法にしても、作業前にはプラグインとかテーマとかデータベースとか諸々のバックアップはとっておきましょう。手遅れになる前に…。

TAGS