Wenn ein/e Nutzer/in auf einer Domain, die als Unterseite einer Multisite gemapt wurde, ein neues Passwort anfordert, wird er/sie auf die Hauptseite der Multisite geleitet, um das Passwort dort anzufordern.
Das folgende Plugin auf github schließt diese Multisitelücke und ermöglicht es, dass Nutzer der Subsite ihr Passwort auf dieser Seite neu erstellen können, ohne über die Hauptseite des Netzwerks gelenkt zu werden:
https://gist.github.com/lukecav/8531e0859eae028e3c989f0f396441a9
<?php
/**
* Plugin Name: Multisite: Password Reset on subsite
* Plugin URI: https://gist.github.com/eteubert/293e07a49f56f300ddbb
* Description: By default, WordPress Multisite uses main site of a network for password resets. This plugin enables users to stay in their subsite 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";
});
Schreibe einen Kommentar