Trick # 615 | Dieser Beitrag beinhaltet 0 Wörter. – Geschätzte Lesezeit: ca. 0 Minuten.
Den Abmeldelink, mit dem sich Ihre User von der Website abmelden können, haben Sie bereits kennengelernt. Er ist hilfreich, funktioniert aber leider nicht in allen Umgebungen. Besonders auf mehrsprachigen Websites wirft er zuweilen Fehler ab. Die beheben wir heute.
Das Problem sind insbesondere die Sprachbezeichnungen, welche WPML & Co. meist zurückgeben. So zu erkennen: https://ihre-domain.ch/de/ihr-beitrags-slug.
Damit hat der Abmeldelink-Generator Mühe. Da bessern wir nach.
Dieser Beitrag basiert auf unserem Tipp «Aus WordPress abmelden – ganz ohne Umschweife». Der heutige Hack wurde so ergänzt, dass er auch mit WPML und anderen Mehrsprachen-Tools funktioniert. Wenn Ihre Website einsprachig ist, empfehlen wir Ihnen den simpleren Code dieses Beitrags.
Das Ziel unseres heutigen Codes:
- Es wird eine URL erstellt, die mit dem Shortcode
[logout_url]vielfältig genutzt werden kann. Diese URL kann Ihnen für Text-, Bild-, Button- und andere Links dienen. - Etwaige Sprachbezeichnungen in der URL, welche zu Funktionsstörungen bei der Abmeldung führen können, werden entfernt.
- Der standardmässige Bestätigungsschritt im WordPress-Logout-Prozess wird übersprungen, sodass User mit einem Klick direkt ausgeloggt werden.
- Nach dem Logout werden die NutzerInnen zur Startseite umgeleitet.
Das alles macht der nachfolgende Code. Kopieren Sie diesen in Ihre Datei functions.php – unter Design/Theme-Datei-Editor im Backend:
// Shortcode zur Ausgabe der direkten Logout-URL (ohne Sprachcode)
function custom_direct_logout_url_shortcode() {
// Generiere die Basis-URL ohne Sprachcode
$base_url = remove_wpml_language_code(home_url('wp-login.php?action=logout'));
// Füge das Nonce hinzu
return wp_nonce_url($base_url, 'log-out');
}
add_shortcode('logout_url', 'custom_direct_logout_url_shortcode');// Funktion zum Entfernen des WPML-Sprachcodes aus der URL
function remove_wpml_language_code($url) {
// Prüft, ob WPML aktiv ist
if (defined('ICL_LANGUAGE_CODE')) {
$lang_code = '/' . ICL_LANGUAGE_CODE . '/';
$url = str_replace($lang_code, '/', $url); // Ersetze Sprachcode mit einem einfachen Slash
}
return $url;
}// Redirect nach dem Logout
function custom_logout_redirect() {
// Generiere die URL ohne Sprachcode
$redirect_url = remove_wpml_language_code(home_url());
wp_redirect($redirect_url); // Weiterleitung zur Startseite
exit;
}
add_action('wp_logout', 'custom_logout_redirect');Platzieren Sie nun den Shortcode [logout_url] an der gewünschten Stelle.
Beachten Sie: Der Shortcode generiert lediglich die richtige Logout-URL im Format https://ihre-domain.ch/wp-login.php?action=logout&_wpnonce=7e53672655. Diese URL können Sie flexibel verwenden, sei es für einen Textlink, einen Bildlink oder einen Button.
Versuchen Sie es. Funktioniert bestens.
Werbung


