解决了一个由于PHP升级到7.1导致一个使用4.1版本的wordpress站点无法登陆的问题。
问题的现象是访问wp-login.php,一片空白。打开Debug后,显示挂在了这个位置:wp-includes/user.php:54。
网上翻了了好久才找到问题的原因:PHP7.1对空字符串的处理,不再自动转换为array。
如果不能升级wordpress版本,就只能手动修改wp-login.php文件,只需要修改一行:
@@ -790,7 +790,7 @@ function retrieve_password() {
$reauth = empty($_REQUEST['reauth']) ? false : true;
- $user = wp_signon( '', $secure_cookie );
+ $user = wp_signon( array(), $secure_cookie );
if ( empty( $_COOKIE[ LOGGED_IN_COOKIE ] ) ) {
if ( headers_sent() ) {
问题就可以解决了。
关于此问题的官方页面:https://core.trac.wordpress.org/attachment/ticket/37071/fix-wp-login-error.patch