Trick # 438 | Dieser Beitrag beinhaltet 610 Wörter. – Geschätzte Lesezeit: ca. 4 Minuten.
Member-Bereiche sind beliebt und in WordPress einfach machbar. Sie können in einem WordPress-Menü auch einen Link zur Anmeldung/Abmeldung hinzufügen. Das geht ganz einfach.
Das WordPress-Menü muss über Design/Menüs erstellt werden und einen Anzeigeplatz im Theme haben.
Der folgende Block muss zusätzlich der Datei functions.php Ihres Themes hinzugefügt werden. Sie finden die Datei unter Design/Theme-Datei-Editor:
add_filter( 'wp_nav_menu_items', 'themeprefix_login_logout_link', 10, 2 );
function themeprefix_login_logout_link( $items, $args ) {
if( $args->theme_location == 'primary' ) {
$loginoutlink = wp_loginout( 'index.php', false );
$items .= '<li class="menu-item login-button">'. $loginoutlink .'</li>';
return $items;
}
return $items;
}
Der An-/Abmeldelink wird dem Hauptmenü automatisch hinzugefügt. Wenn Sie auf der Website angemeldet sind, steht auf dem Link «Abmelden», wenn Sie angemeldet sind, steht auf der Website «Anmelden».
Noch zwei Infos:
- Sie können den Standardwert von
index.php
(in Zeile 4) in eine andere Weiterleitungsseite ändern. - Wenn Sie den zusätzlichen Menüpunkt gestalten möchten, fügen Sie einfach eine CSS-Klasse in den <li>-Tag ein. In unserem Fall haben wir die CSS-Klasse «.login-button» hinterlegt. Sie können die Klasse im CSS-Stylesheet (unter Design/Customizer/Zusätzliches CSS) ansprechen und stylen.
Feintuning
Um verschiedene Ziele für die An- und Abmeldung zu definieren, können Sie eine Bedingung einbauen. Der folgende Code kommt (anstelle des obigen Blocks) in die Datei functions.php Ihrer WordPress-Installation. Diese können Sie im Backend unter Design/Theme-Datei-Editor bearbeiten:
add_filter( 'wp_nav_menu_items', 'themeprefix_login_logout_link', 10, 2 );
function themeprefix_login_logout_link( $items, $args ) {
if( is_user_logged_in() ) {
$loginoutlink = wp_loginout( 'members', false );
$items .= '<li class="menu-item login-button">'. $loginoutlink .'</li>';
return $items;
}
else {
$loginoutlink = wp_loginout( 'index.php', false );
$items .= '<li class="menu-item login-button">'. $loginoutlink .'</li>';
return $items;
}
}
Hier sind also alle Menüs zielgerichtet und die Anmelde- und Abmeldeziele sind unterschiedlich, je nachdem, ob der Benutzer angemeldet ist oder nicht.
Die Weiterleitungsziele können Sie ebenfalls anpassen:
- In Zeile 5 ersetzen Sie die Weiterleitung nach dem Login auf die Seite «members» mit der gewünschten Seite und …
- … in Zeile 10 definieren Sie, wohin nach dem Logout weitergeleitet wird: In unserem Falle auf die Seite «index.php».
Werbung