Fügen Sie dem Navigationsmenü den Link "Abmelden" hinzu
-
-
Haben Siebereits Fragen und Antworten wie [diese]gesehen (http://wordpress.stackexchange.com/questions/46547/how-to-use-logout-function-on-custom-menu-link)?Have you seen existing questions and answers like [this one](http://wordpress.stackexchange.com/questions/46547/how-to-use-logout-function-on-custom-menu-link)?
- 1
- 2014-07-29
- fuxia
-
Haben Sie [`wp_loginout ()`] (http://queryposts.com/function/wp_loginout/)gesehen?Have you seen [`wp_loginout()`](http://queryposts.com/function/wp_loginout/)?
- 0
- 2014-07-30
- kaiser
-
Ich habe die akzeptierte Antwortentfernt,weil sie von [dieser Site]plagiiert wurde (http://premium.wpmudev.org/blog/how-to-add-a-loginlogout-link-to-your-wordpress-menu/).ohne Zuschreibung.I have removed the accepted answer, because it was plagiarized from [this site](http://premium.wpmudev.org/blog/how-to-add-a-loginlogout-link-to-your-wordpress-menu/) without attribution.
- 2
- 2014-07-30
- fuxia
-
Am Ende habeichetwas Ähnlichesbenutzt.Zumindestmit der Funktion loginout ().Ich werdegenau dasposten,wasich dasnächste Malgetan habe,wennich vormeinem Computer stehe.Danke @toschoI ended up using something similar; at least using the loginout() function. I'll post exactly what I did next time I'm in front of my computer. Thanks @toscho
- 0
- 2014-07-31
- Zach Russell
-
Sie können dieses kostenlose Plugin https://wordpress.org/plugins/login-logout-register-menu/verwenden,um dies aufeinfache Weise zuerreichen.You can use this free plugin https://wordpress.org/plugins/login-logout-register-menu/ to achieve the same easily.
- 0
- 2017-04-16
- Vinod Dalvi
-
6 Antworten
- Stimmen
-
- 2014-07-30
Sie können diesmit dem Hook
wp_nav_menu_items
erreichen. Schauen wir uns denfolgenden Code an,der den Login/Logout-Link auf der Menüpositionprimary
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 wirim obigen Beispielimplementiert.
- Zuerst wurdeein Filterfür den
wp_nav_menu_items
-Hook hinzugefügt undein angehängt Funktion dazu. - Nachdem wirnach dem Speicherort des
primary
-Themasgesucht haben,haben wir überprüft,ob Benutzerist angemeldet odernicht. - Wenn angemeldet,haben wir den Link
Log Out
angezeigt,andernfalls den LinkLog In
Link. - Wir haben den Permalink der aktuell angezeigten Seite an die übergeben Login-URL,damit der Benutzernachher zur aktuellen Seite weitergeleitet wird erfolgreiche Anmeldung.
- Wir haben den
class="right"
für den obigen Code verwendet,um Ihren Anforderungen zuentsprechen Anforderung.
Eine ausführliche Erklärungfinden Siein diesem Blog .
You can achieve this using the
wp_nav_menu_items
hook. Let's have a look at the following piece of code which shows the login/logout link on theprimary
menu location.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; }
This is what we have implemented in the above example.
- First added a filter for
wp_nav_menu_items
hook and attached a function to it. - After checking for
primary
theme location, we have checked whether user is logged in or not. - If logged in, we have showed the
Log Out
link otherwise theLog In
link. - We have passed the permalink of the currently viewing page to the login url so that user will be redirected to the current page after successful login.
- We have used the
class="right"
to the above code to meet your requirement.
You can find a detailed explanation on this blog.
-
@timo-s Im Thema Twenty Seventeen (child)funktioniert diesnurmit einer Menüposition "top": "if ($ args->theme_location=="top ")".@timo-s In the Twenty Seventeen (child) theme this will work only with a `top` menu location: `if ($args->theme_location == 'top')`.
- 0
- 2017-09-02
- Iurie Malai
-
Ortmusstefürmich "Primärmenü" seinlocation needed to be for me `primary-menu`
- 0
- 2017-09-03
- Toskan
-
- 2016-11-13
Versuchen Sie,einen benutzerdefinierten Linkmit http://example.com/wp-login hinzuzufügen.php? action=logout Es hatbei mirfunktioniert!
Try adding a custom link with http://example.com/wp-login.php?action=logout It worked for me!
-
Dies zeigt dem Benutzer die Meldung "Möchten Sie sich wirklich abmelden?"prompt,aufgrund der Tatsache,dass die Noncefehlt.This presents the user with the "Are you sure you want to log out?" prompt, due to the fact that the nonce is missing.
- 2
- 2017-07-10
- random_user_name
-
- 2020-07-16
Wenn Sieflexibelein Plugin hinzufügenmöchten,um diese Funktionalität zuerhalten,können Sie Folgendes verwenden: https://wordpress.org/plugins/login-logout-register-menu/
Es wirdeinfachein sehrpraktischer Abschnittim Menü-Generator hinzugefügt.Sie könnenesmit einem anderen Plugin kombinieren,umeinzuschränken,welche Menüelementefür angemeldete Benutzer angezeigt werden,welchefür abgemeldete Benutzer und welchefür alle.
If you're flexible about adding a plugin to get this functionality, you could use: https://wordpress.org/plugins/login-logout-register-menu/
It simply adds a very convenient section in the menu builder. You can combine it with another plugin to restrict what menu items are shown to logged in users, which ones to logged out users, and which ones to everyone.
-
- 2018-09-03
Mein Fußzeilenmenüistein Widget ,daher hatteich Schwierigkeiten,den Code von Chittaranjan zu verwenden. Diefolgendebearbeitete Versionfunktioniertfürmich. Ich habe auch die Linksgeändert und sie "dynamisch"gemacht: Die Anmeldungführt zueiner Seite Ihrer Wahl. Die Abmeldungbleibtentweder auf der aktuellen Seite oder wirdnach Hausegesendet,wenn die aktuelle Seite Ihre (private) Anmeldeseiteist. Im Idealfall wird überprüft,ob Ihre Anmeldeseitetatsächlichprivatist,aberich weiß leidernicht,wie dasgeht.
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; }
My footer menu is a widget, therefore I had difficulties using the code by Chittaranjan. The following edited version works for me. I also changed the links and made them "dynamic": login leads to a page of your choice, logout will either stay on the current page, or send to home, if the current page is your (private) login page. Ideally it would check if your login page is actually private, but I don't know how to do that, 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; }
-
- 2020-05-27
Sie können auchein einfaches Plugin verwenden: https://wordpress.org/plugins/login-or-logout-menu-item/
Siegelangennicht zur Bestätigungsseitefür die Abmeldung.
You can also make use of a simple plugin: https://wordpress.org/plugins/login-or-logout-menu-item/
It does not take you to the logout confirmation page.
-
- 2018-08-30
add_filter( 'wp_nav_menu_items', 'add_loginout_link', 15, 5 ); function add_loginout_link( $menus, $args ) { if (is_user_logged_in() && $args->theme_location == 'primary') { $menus .= '<li><a href="'. wp_logout_url( get_permalink( woocommerce_get_page_id( 'myaccount' ) ) ) .'">Log Out</a></li>'; } elseif (!is_user_logged_in() && $args->theme_location == 'primary') { $menus .= '<li><a href="' . get_permalink( woocommerce_get_page_id( 'myaccount' ) ) . '">Log In</a></li>'; } return $menus; }
add_filter( 'wp_nav_menu_items', 'add_loginout_link', 15, 5 ); function add_loginout_link( $menus, $args ) { if (is_user_logged_in() && $args->theme_location == 'primary') { $menus .= '<li><a href="'. wp_logout_url( get_permalink( woocommerce_get_page_id( 'myaccount' ) ) ) .'">Log Out</a></li>'; } elseif (!is_user_logged_in() && $args->theme_location == 'primary') { $menus .= '<li><a href="' . get_permalink( woocommerce_get_page_id( 'myaccount' ) ) . '">Log In</a></li>'; } return $menus; }
-
Siemüssen Ihren Codemit 4 Leerzeichen am Anfangjeder Zeileformatieren (siehe Hilfe).You need to format your code using 4 spaces at the start of each line (see the help).
- 0
- 2018-08-30
- Peter HvD
-
Bittebewerben Sie Ihre Websitenicht.Bittebearbeiten Sie Ihre Antwortmit einer Erklärung,wie dieser Codeblock die vorliegende Fragebeantwortet,wo sie hinzugefügt werden soll und was sie speziellbewirkt.Please do not advertise your website. Please do edit your answer with an explanation on how this code block answers the question at hand, where to add it, and what specifically it does.
- 0
- 2018-08-30
- Howdy_McGee
Wie kannich demprimären Navigationsmenüeinen Linkmit dem Attribut
class="right"
hinzufügen?Ich habe versucht,einen statischen Link zu
example.com/wp-logout.php?action=logout
hinzuzufügen,diesführtjedoch zueiner Bestätigungsseitefür die Abmeldung.Gibteseine Möglichkeit,einen Abmeldelink zuerstellen?