这很有效!
默认情况下,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";
});