【解決事例】WordPressのログイン画面を表示しようとすると500エラーが発生してしまう

今回の依頼は、WordPressのログイン画面を表示しようとすると500エラーが発生してしまい、ログインできないという問題です。

ブログの記事を公開しているページは問題なく表示されているのに、管理画面でエラーが発生している状態でした。

エラーログを解析したところ、以下のようなメッセージが表示されていました。

PHP Fatal error: Uncaught Error: Cannot create references to/from string offsets in /home/XXX/html/wp-includes/user.php:56
Stack trace:
#0 /home/XXX/html/wp-login.php(784): wp_signon(”, ”)

この問題はPHP7.1の環境で、古いWordPressを利用しているのが原因でした。
英語ですが、こちらのページにて説明があります。

修正方法は、wp-login.phpを以下のように書き換えました。

修正前: $user = wp_signon( ”, $secure_cookie );
修正後: $user = wp_signon( array(), $secure_cookie );

これにより無事にログイン画面が表示されるようになりました。

なお、この部分は最新版のWordPressでは既に修正済みなので、WordPressをバージョンアップすれば自動で適用されます。