WPのログイン画面が Internal Server Error 500 で開かない

少し前のバージョンのWordPressを引っ越し&アップデートしようとしたところ、引っ越し直後にログイン画面が Internal Server Error 500 で開かない現象に遭遇。 慌てず騒がずApacheのエラーログを確認。
PHP Warning:  Illegal string offset 'remember' in /PATH/TO/WORDPRESS/wp-includes/user.php on line 41
PHP Warning:  Cannot assign an empty string to a string offset in /PATH/TO/WORDPRESS/wp-includes/user.php on line 41
PHP Warning:  Illegal string offset 'user_login' in /PATH/TO/WORDPRESS/wp-includes/user.php on line 56
PHP Fatal error:  Uncaught Error: Cannot create references to/from string offsets in /PATH/TO/WORDPRESS/wp-includes/user.php:56\nStack trace:\n#0 /PATH/TO/WORDPRESS/wp-login.php(775): wp_signon('', '')\n#1 {main}\n  thrown in /PATH/TO/WORDPRESS/wp-includes/user.php on line 56
最後の行が怪しいので、PHP Fatal error: Uncaught Error: Cannot create references to/from string offsets in /wp-includes/user.php:56で検索。 すると、下記サイトがヒット。 そのものビンゴです。このページに書いてある通り、/PATH/TO/WORDPRESS/wp-login.phpの以下の行を修正。
    $user = wp_signon( "", $secure_cookie ); //788行目、この行を
    $user = wp_signon( array(), $secure_cookie ); //第一引数を空文字列から空の配列に変更
これでログインできるようになりました。このくらいで済んで良かった……。

この記事を書いた人

アルム=バンド

フロントエンド・バックエンド・サーバエンジニア。LAMPやNodeからWP、Gulpを使ってejs,Scss,JSのコーディングまで一通り。たまにRasPiで遊んだり、趣味で開発したり。