“遗失密码”页面触发404

时间:2016-07-29 作者:Lucio Crusca

我有一个带有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配置的损坏负责)。

1 个回复
最合适的回答,由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注释的形式打印信息。

相关推荐

是否有必要清理wp_set_password用户输入?

我正在尝试向WP注册表添加密码表单。请参见下面的代码。我想知道是否需要清理这个特定的用户输入?(如果是,怎么做?)如果我理解正确,WP为某些东西内置了净化功能,密码可能就是其中之一。对吗?WP会在将其添加到数据库之前自动对其进行清理吗?add_action( \'register_new_user\', \'registration_change_pass\', 10, 99 ); function registration_change_pass( $user_id ) { &