如何重定向到自定义密码检索页

时间:2011-07-07 作者:Amit

我有一个新网站,我正在使用bbpress beta-3,我用bbpress提供的自定义模板创建了自定义登录/注册/丢失密码页面,我似乎找不到“劫持”调用的筛选器/挂钩/操作wp-login.php. 我最大的问题是lost-password page,我想用通知重定向,我可以捕获错误,但无法捕获sent password 事件

我现在在函数中使用。php:

function get_password_retrieve_errors(){
    wp_redirect( site_url(\'lost-password\').\'?getpass=failed\'  );
}

add_filter(\'lostpassword_redirect\', \'get_password_retrieve_errors\', 1);
而表单中的用户丢失了通行证。php:

<?php if ( $_GET[\'getpass\'] == \'failed\' ) { ?>
    <div class="bbp-template-notice error">
        <p>Invalid username or e-mail, please try again.</p>
    </div>
<?php } ?>
有什么办法吗
1 个回复
最合适的回答,由SO网友:helgatheviking 整理而成

我也不确定我是否真的了解你,但如何过滤wp\\u lostpassword\\u url呢

从…起wp-includes/general-template.php

function wp_lostpassword_url( $redirect = \'\' ) {
            $args = array( \'action\' => \'lostpassword\' );
            if ( !empty($redirect) ) {
                    $args[\'redirect_to\'] = $redirect;
            }

            $lostpassword_url = add_query_arg( $args, network_site_url(\'wp-login.php\', \'login\') );
            return apply_filters( \'lostpassword_url\', $lostpassword_url, $redirect );
}
看起来它有一个过滤器,您可以使用它将其指向自定义URL,甚至可以添加“getpass”查询变量

下面是一个非常基本的示例:

function custom_login_lostpassword_url()
{
    // use a site_url/plugins_url to output the correct URL.
    return "http://.../my-custom-lostpassword-screen.php";
}

add_filter("lostpassword_url", "custom_login_lostpassword_url");

结束