我有一个带有Wiz主题的WP 4.5.3和另外两个插件(与Wiz捆绑的插件除外):WP客户区和WP成员。
https://www.ukulele.it/wp-login.php
尝试单击“丢失密码”,您将获得404。我在google上搜索了这个问题,结果表明插件冲突。我尝试过禁用这两个与用户管理相关的插件,但404错误仍然存在。
如何将“更改密码”页面重置为WP默认页面?
在birgire的回答后编辑:
我已经添加了建议的代码来发现责任插件,例如:
add_action( \'login_footer\', function() use ( &$wp_filter )
{
if( isset( $wp_filter[\'lostpassword_url\'] ) )
printf( \'<!--%s-->\', print_r( $wp_filter[\'lostpassword_url\'], 1 ) );
});
在登录页面source now中,我得到:
<!--Array
(
[10] => Array
(
[wc_lostpassword_url] => Array
(
[function] => wc_lostpassword_url
[accepted_args] => 1
)
)
)-->
这意味着在我的情况下,WooCommerce应该受到谴责(或者我自己应该为WooCommerce配置的损坏负责)。
最合适的回答,由SO网友:birgire 整理而成
您的主题或插件很可能正在修改wp-login.php
通过lostpassword_url
滤器
如何将“更改密码”页面重置为WP默认页面?
需要删除这些过滤器回调。
这里有一个(未经测试的)建议:
add_filter( \'lostpassword_url\', function( $url, $redirect )
{
remove_all_filters( \'lostpassword_url\' );
return wp_lostpassword_url( $redirect );
}, PHP_INT_MAX, 2 );
否则可以在安装中搜索
add_filter( \'lostpassword_url\'
或者窥视
$wp_filter
全局数组。下面是一个示例:
add_action( \'login_footer\', function() use ( &$wp_filter )
{
if( isset( $wp_filter[\'lostpassword_url\'] ) )
printf( \'<!--%s-->\', print_r( $wp_filter[\'lostpassword_url\'], 1 ) );
});
这将在登录页面上以HTML注释的形式打印信息。