为多站点子站点上的用户重置密码

时间:2014-12-16 作者:Mike

我有一个多站点网络。我希望我的用户能够在其子网站内重置密码。例如,单击“丢失密码?”链接将他们保持在其子域内(subdomain.domain.com/wp login.php?action=lostpassword),而不是将他们带到主站点(domain.com/wp login.php?action=lostpassword)。

在他们提交用户名或电子邮件以重置密码后,我希望该电子邮件包含指向其子域的链接,而不是默认功能的主站点。

在4.0更新之前,我能够使用此修补程序https://core.trac.wordpress.org/ticket/21352 最终这个插件https://gist.github.com/strangerstudios/9487278 以获得上述确切功能。一切都很好。

然而,更新后,它不再工作。在参考的各个地方寻求帮助仍然无助于解决问题。有人能帮忙吗?

1 个回复
SO网友:KLM

这很有效!

默认情况下,WordPress Multisite使用主博客进行密码重置。此插件允许用户在整个重置过程中停留在博客中

<?php
/**
 * Plugin Name: Multisite: Passwort Reset on Local Blog
 * Plugin URI:  https://gist.github.com/eteubert/293e07a49f56f300ddbb
 * Description: By default, WordPress Multisite uses the main blog for passwort resets. This plugin enables users to stay in their blog during the whole reset process.
 * Version:     1.0.0
 * Author:      Eric Teubert
 * Author URI:  http://ericteubert.de
 * License:     MIT
 */
// fixes "Lost Password?" URLs on login page
add_filter("lostpassword_url", function ($url, $redirect) { 

    $args = array( \'action\' => \'lostpassword\' );

    if ( !empty($redirect) )
        $args[\'redirect_to\'] = $redirect;
    return add_query_arg( $args, site_url(\'wp-login.php\') );
}, 10, 2);
// fixes other password reset related urls
add_filter( \'network_site_url\', function($url, $path, $scheme) {

    if (stripos($url, "action=lostpassword") !== false)
        return site_url(\'wp-login.php?action=lostpassword\', $scheme);

    if (stripos($url, "action=resetpass") !== false)
        return site_url(\'wp-login.php?action=resetpass\', $scheme);

    return $url;
}, 10, 3 );
// fixes URLs in email that goes out.
add_filter("retrieve_password_message", function ($message, $key) {
    return str_replace(get_site_url(1), get_site_url(), $message);
}, 10, 2);
// fixes email title
add_filter("retrieve_password_title", function($title) {
    return "[" . wp_specialchars_decode(get_option(\'blogname\'), ENT_QUOTES) . "] Password Reset";
});

结束

相关推荐

Web.config打破了子目录MultiSite的主题

我们正在将单个wordpress站点转换为子目录网络,但找不到任何web。正确工作的配置。一旦我们更改了单站点web,我们就永远无法让主题发挥作用,即使是在根(/)站点上。为多站点配置,它会中断。我已经搜索了几个小时,找到了几个人们找到网站的主题。配置对我们有效,但没有一个对我们有效,主题总是被打破。我们需要的设置如下:http://www.domain.com/ (主站点)http://www.domain.com/en/ (网站英文版)我确实在我自己的Apache服务器上实现了一定程度的功能,但它尝试