点击找回密码提示错误“Fatal error: Cannot redeclare retrieve_password()”的解决办法

最近搬主题发现本站的找回密码功能突然无法实现,直接显示致命错误“Fatal error: Cannot red…

最近搬主题发现本站的找回密码功能突然无法实现,直接显示致命错误“Fatal error: Cannot redeclare retrieve_password()”,这是什么情况呢?因为是WordPress网站,因此这块应该是和最近升级到WordPress 5.7版本有关。经过网上搜索最终解决了问题,这里搬主题就分享一下点击找回密码提示错误“Fatal error: Cannot redeclare retrieve_password()”的解决办法。

一、问题呈现

一般是我们在WordPress站点点击忘记密码或者找回密码链接的时候,然后会提示类似如下图

点击找回密码提示错误“Fatal error: Cannot redeclare retrieve_password()”的解决办法插图

无论更新缓存什么的操作,问题依旧

二、问题分析

因为光看图片无法知道是哪里出现了问题,只能打开WordPress的调试模式。打开WordPress站点根目录下的wp-config.php文件,然后找到下面的代码

define('WP_DEBUG', false);
点击找回密码提示错误“Fatal error: Cannot redeclare retrieve_password()”的解决办法插图1

然后改为

define('WP_DEBUG', true);

保存后,再打开刚才崩溃的页面,一般会在页面上方提示如下类似的页面代码。如果没有出现,则需要清除WordPress网站的缓存。

Fatal error: Cannot redeclare retrieve_password() (previously declared in 网站目录/wp-includes/user.php:2671) in 网站目录/wp-content/themes/qux/pages/resetpassword.php on line 192

从上可以看出 retrieve_password() 函数被重复定义,因此才产生的致命错误。

这里搬主题发现,如果是WordPress的默认主题则没有这种情况出现,在一些自定义主题模板才会出现,比如国内用的很多的主题dux或者qux主题。

三、解决办法

因为是函数被重复定义,因此我们只要将其中一个函数删除即可。

这里以qux主题为例,各自可以根据上面提示的代码找到类似的文件,这里搬主题打开对应文件夹下的resetpassword.php文件,找到192行,代码如下

function retrieve_password() {
点击找回密码提示错误“Fatal error: Cannot redeclare retrieve_password()”的解决办法插图2

解决办法比较简单,将 retrieve_password 删除即可,删除后如下图

IMG_0

重新刷新网站缓存即可。

同理,如果是qux主题的还有 quxtemplateactions 文件夹下的tpl.M.Findpass.php文件,找到其182行,继续将 retrieve_password 函数删除即可。

类别:WordPress 进阶教程

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT

登录 账号发表你的看法,还没有账号?立即免费 注册