Aggiungi il link "Logout" al menu di navigazione
-
-
Hai visto domandee risposteesistenti come [questa] (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
-
Hai visto [`wp_loginout ()`] (http://queryposts.com/function/wp_loginout/)?Have you seen [`wp_loginout()`](http://queryposts.com/function/wp_loginout/)?
- 0
- 2014-07-30
- kaiser
-
Ho rimosso la risposta accettata,perché è stataplagiata da [questo sito] (http://premium.wpmudev.org/blog/how-to-add-a-loginlogout-link-to-your-wordpress-menu/)senza attribuzione.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
-
Hofinitoper usare qualcosa di simile;almeno usando lafunzione loginout ().Pubblicheròesattamente quello che hofatto laprossima volta che sarò davanti almio computer.Grazie @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
-
Puoi utilizzare questoplugingratuito https://wordpress.org/plugins/login-logout-register-menu/per ottenere lo stesso risultatofacilmente.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 risposta
- voti
-
- 2014-07-30
Puoifarlo usando l'hook
wp_nav_menu_items
. Diamo un'occhiata alla seguenteparte di codice chemostrail collegamento di accesso/disconnessionenellaposizione delmenuprimary
.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; }
Questo è ciò che abbiamoimplementatonell'esempioprecedente.
- Perprima cosa aggiunto unfiltroperilgancio
wp_nav_menu_items
e allegato un funzione adesso. - Dopo aver verificato laposizione deltema
primary
,abbiamo verificato se l'utente è connesso omeno. - Se sei loggato,abbiamomostratoil link
Log Out
altrimentiil linkLog In
collegamento. - Abbiamopassatoilpermalink dellapagina attualmente visualizzata a URL di accessoin modo che l'utente venga reindirizzato allapagina corrente dopo accesso riuscito.
- Abbiamo utilizzato
class="right"
nel codiceprecedenteper soddisfareiltuo requisito.
Puoitrovare una spiegazione dettagliatain questo 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 Neltema Twenty Seventeen (figlio) questofunzionerà solo con unaposizione delmenu `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
-
location dovevaessereperme "menu-primario"location needed to be for me `primary-menu`
- 0
- 2017-09-03
- Toskan
-
- 2016-11-13
Prova ad aggiungere un linkpersonalizzato con http://example.com/wp-login.php? action=logout Hafunzionatoperme!
Try adding a custom link with http://example.com/wp-login.php?action=logout It worked for me!
-
Questopresenta all'utenteilmessaggio "Sei sicuro di voler uscire?"pronto,perilfatto chemancailnonce.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
Se seiflessibile sull'aggiunta di unplug-inper ottenere questafunzionalità,puoi utilizzare: https://wordpress.org/plugins/login-logout-register-menu/
Aggiunge semplicemente una sezionemolto comodanelgeneratore dimenu.Puoi combinarlo con un altroplug-inper limitare quali voci dimenu vengonomostrate agli utenti che hannoeffettuato l'accesso,quali a quelli che hanno disconnessoe quali atutti.
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
Ilmiomenu apiè dipagina è un widget ,quindi ho avuto difficoltà a utilizzareil codice di Chittaranjan. La seguente versionemodificatafunzionaperme. Ho anche cambiatoi linke li ho resi "dinamici":il loginporta a unapagina ditua scelta,il logout rimarrà sullapagina corrente,oinvierà a home,se lapagina corrente è latuapagina di login (privata). Idealmente controllerebbe se latuapagina di accesso èeffettivamenteprivata,manon so comefarlo,mi dispiace.
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
Puoi anche utilizzare un sempliceplug-in: https://wordpress.org/plugins/login-or-logout-menu-item/
Nonti porta allapagina di conferma della disconnessione.
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; }
-
Ènecessarioformattareil codice utilizzando 4 spazi all'inizio di ogni riga (vedere laguida).You need to format your code using 4 spaces at the start of each line (see the help).
- 0
- 2018-08-30
- Peter HvD
-
Perfavorenonpubblicizzareiltuo sito web.Modifica latua risposta con una spiegazione su come questoblocco di codice risponde alla domandain questione,dove aggiungerloe cosafanello specifico.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
Comeposso aggiungere un collegamento almenu dinavigazioneprincipale con l'attributo
class="right"
?Hoprovato ad aggiungere un collegamento statico a
example.com/wp-logout.php?action=logout
ma questoporta a unapagina di conferma del logout.C'è unmodoper renderlo un collegamento di disconnessione?