Wie kann ich dem primären Navigationsmenü einen Link mit dem Attribut class="right"
hinzufügen?
Ich habe versucht, einen statischen Link zu example.com/wp-logout.php?action=logout
hinzuzufügen, aber dies führt zu einer Bestätigungsseite für das Abmelden. Gibt es eine Möglichkeit, einen Abmeldelink zu erstellen?
Sie können dies mit dem Hook wp_nav_menu_items
erreichen. Werfen wir einen Blick auf den folgenden Code, der den Login/Logout-Link auf der primary
-Menüposition zeigt.
add_filter( 'wp_nav_menu_items', 'wti_loginout_menu_link', 10, 2 );
function wti_loginout_menu_link( $items, $args ) {
if ($args->theme_location == 'primary') {
if (is_user_logged_in()) {
$items .= '<li class="right"><a href="'. wp_logout_url() .'">'. __("Log Out") .'</a></li>';
} else {
$items .= '<li class="right"><a href="'. wp_login_url(get_permalink()) .'">'. __("Log In") .'</a></li>';
}
}
return $items;
}
Dies haben wir im obigen Beispiel implementiert.
wp_nav_menu_items
hook hinzugefügt und eine Funktion hinzugefügt.primary
überprüft haben, haben wir überprüft, ob der Benutzer angemeldet ist oder nicht.Log Out
-Link angezeigt, ansonsten den Log In
-Link.class="right"
für den obigen Code verwendet, um Ihre Anforderung zu erfüllen.Eine ausführliche Erklärung finden Sie auf diesem Blog .
Versuchen Sie, einen benutzerdefinierten Link mit http://example.com/wp-login.php?action=logout hinzuzufügen. Es hat bei mir funktioniert!
Mein Fußzeilenmenü ist ein Widget , daher hatte ich Schwierigkeiten, den Code von Chittaranjan zu verwenden. Die folgende bearbeitete Version funktioniert für mich. Ich habe auch die Links geändert und sie "dynamisch" gemacht: Die Anmeldung führt zu einer Seite Ihrer Wahl, die Abmeldung bleibt entweder auf der aktuellen Seite oder wird nach Hause gesendet, wenn die aktuelle Seite Ihre (private) Anmeldeseite ist. Im Idealfall wird überprüft, ob Ihre Anmeldeseite tatsächlich privat ist, aber ich weiß nicht, wie das geht, sorry.
add_filter( 'wp_nav_menu_items', 'wti_loginout_menu_link', 10, 2 );
function wti_loginout_menu_link( $items, $args ) {
//var_dump($args);
if (($args->menu->slug == 'footer')) {
if (is_user_logged_in()) {
$loginlink = '/your-private-page';
$logoutlink = get_permalink();
if (strpos($logoutlink, $loginlink) !== false) {
$logoutlink = '/';
}
$items .= '<li class="right"><a href="'. wp_logout_url($logoutlink) .'">'. __("Log Out") .'</a></li>';
} else {
$items .= '<li class="right"><a href="'. wp_login_url($loginlink) .'">'. __("Log In") .'</a></li>';
}
}
return $items;
}