Wie zeige ich “Login-Fehler” und “Passwort verloren” auf meiner Vorlagenseite an?

Ich stelle Front-End-Login in einer Vorlage mit der function wp_login_form zur Verfügung. Es handhabt die Umleitung nach dem An- und Abmelden ziemlich ordentlich! Wenn der Benutzername / Passwort nicht übereinstimmt oder nicht vorhanden ist, wird der Benutzer zur Admin-Anmeldeseite mit dem wackeligen js-Fehler weitergeleitet. Genauso ist es auch, wenn ich versuche, das Passwort zurückzusetzen. Es bringt mich zur Backend-Seite, wo ich meine E-Mail-Adresse eingeben muss, um das Passwort zurückzusetzen. Ich möchte beide Aktivitäten auf meiner Vorlage zeigen. Kann ich das irgendwie machen?

Danke für jede Hilfe im Voraus.

Solutions Collecting From Web of "Wie zeige ich “Login-Fehler” und “Passwort verloren” auf meiner Vorlagenseite an?"

Ja es ist möglich. Sie müssen dafür drei Filter erstellen.

Admin-Zeug in einer class

class WPSE29338_Admin { public static function setup() { add_filter('login_url', array(__CLASS__, 'modifyLoginURL'), 10, 2); add_filter('lostpassword_url', array(__CLASS__, 'modifyLostPasswordURL'), 10, 2); add_filter('register', array(__CLASS__, 'modifyRegisterURL')); } public static function modifyLoginURL($loginUrl, $redirect = '') { $loginUrl = site_url('login'); // Link to login URL if(!empty($redirect)) { $loginUrl = add_query_arg('redirect_to', urlencode($redirect), $loginUrl); } return $loginUrl; } public static function modifyLostPasswordURL($lostpwUrl, $redirect = '') { $lostpwUrl = wp_login_url() . '#lostpassword'; // Link to lostpassword URL if(!empty($redirect)) { $lostpwUrl = add_query_arg('redirect_to', urlencode($redirect), $lostpwUrl); } return $lostpwUrl; } public static function modifyRegisterURL($registerUrl) { if(!is_user_logged_in()) { if (get_option('users_can_register')) { $registerUrl = '' . __('Register') . ''; // Link to register URL } else { $registerUrl = ''; } } return $registerUrl; } } 

Zuerst müssen wir die Ausgabe der function wp_login_url() filtern, die von wp_login_form() im Formularaktionsattribut verwendet wird.

Sehen Sie sich die Methode modifyLoginUrl() . Hier speichern wir die URL der Seite login innerhalb der Variablen $loginUrl . Diese Seite muss in WordPress vorhanden sein, also erstelle sie zuerst.

Als nächstes brauchen wir einen Filter für die function wp_lostpassword_url() und wp_register() . Es ist im Grunde das Gleiche. Die URL der Site wird in den Variablen $lostpwUrl und $registerUrl gespeichert.

Zu guter Letzt müssen Sie die class auf dem richtigen Aktions-Hook aufrufen. Bei Themes sollte dies after_setup_theme und bei Plugins können Sie plugins_loaded .

Themen / functionen.php

 add_action('after_setup_theme', 'wpse29338_admin_init'); function wpse29338_admin_init() { WPSE29338_Admin::setup(); } 

Plugins

 add_action('plugins_loaded', 'wpse29338_admin_init'); function wpse29338_admin_init() { WPSE29338_Admin::setup(); }