しばらくログインしていなかったWordpressのログイン画面が、500エラーで表示されなくなったとヘルプ依頼がきました。
まずは、『wp-config.php』の『define(‘WP_DEBUG’, false);』を『define(‘WP_DEBUG’, true);』にしエラーを表示させます。
Warning: Illegal string offset 'remember' in ......................./wp-includes/user.php on line 41 Warning: Cannot assign an empty string to a string offset in ..................../wp-includes/user.php on line 41 Warning: Illegal string offset 'user_login' in ......................../wp-includes/user.php on line 56 Fatal error: Uncaught Error: Cannot create references to/from string offsets in ........................../wp-includes/user.php:56 Stack trace: #0 ....................................../wp-login.php(806): wp_signon('', '') #1 {main} thrown in ................../wp-includes/user.php on line 56
『wp-login.php』の806行目(バージョンによって行数は違う)を新しいものと見比べてみると、
古いコード:
$user = wp_signon( '', $secure_cookie );
新しいコード:
$user = wp_signon( array(), $secure_cookie );
これを修正するとログインできるようになりました。
当然のことながらログインした後はWordpressを最新に更新しましょう。