点击找回密码提示错误“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站点点击忘记密码或者找回密码链接的时候,然后会提示类似如下图
无论更新缓存什么的操作,问题依旧
二、问题分析
因为光看图片无法知道是哪里出现了问题,只能打开WordPress的调试模式。打开WordPress站点根目录下的wp-config.php文件,然后找到下面的代码
define('WP_DEBUG', false);
然后改为
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() {
解决办法比较简单,将 retrieve_password
删除即可,删除后如下图
重新刷新网站缓存即可。
同理,如果是qux主题的还有 quxtemplateactions 文件夹下的tpl.M.Findpass.php文件,找到其182行,继续将 retrieve_password
函数删除即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。
还没有任何评论,赶紧来占个楼吧!