Hallo Corné,
Op deze pagina wordt uitgelegd wat er aan de hand kan zijn. In jouw URL zie ik wel een “nonce” staan, maar mogelijk is dat een niet-geldige.
Gebruik je een plugin voor het tonen van de uitlog link?
Guido
Goedemorgen Guido,
Dank voor je snelle reactie!
Nee, ik gebruik geen plugin voor het tonen van de uitlog link.
Ik heb het volgende gedaan zoals aangegeven:
In het menu een link met het label “Uitloggen” geplaatst met link “http://allure2.nl/wp-login.php?action=logout” In function.php de volgende code geplaatst:
function change_menu($items){
foreach($items as $item){
if( $item->title == "Uitloggen"){
$item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' );
}
}
return $items;
}
add_filter('wp_nav_menu_objects', 'change_menu');
In eerste instantie werkt deze optie zonder de vraagstelling “weet je zeker…”. Prima! Maar als ik daarna weer wil inloggen krijg ik de melding weer opnieuw?!
Alvast bedankt weer!
Hoi,
De code die je geeft kom ik ook tegen op Stackexchange maar werkt bij mij niet en wordt daar niet goed beoordeeld. De URL die gegenereerd wordt is onjuist.
Dit werkt wel (link). Toont zowel inlog- als uitloglink. Als je alleen de uitloglink wilt tonen, moet je die code even aanpassen. Als je niet weet hoe, laat het even weten.
Guido
Goedemiddag,
Als ik de code:
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;
}
in functions.php plak werkt het maar éénmalig zonder melding. En er is een optie “Uitloggen” in menu toegevoegd. Prima!
Als ik daarna opnieuw wil inloggen in hetzelfde scherm krijg ik weer de eerder genoemde melding.
Of….. ik doe iets niet goed?
Thnx,
Corné
O ja,
Ik maak overigens gebruik van de plugin: LoginPress
Bij mij werkt het keer op keer prima. Dus ja, zou goed kunnen liggen aan die extra plugin die je gebruikt. Misschien dat bepaalde instellingen van die plugin een conflict veroorzaken met deze code. Om dat vast te stellen zou je die plugin even kunnen de-activeren en het opnieuw kunnen proberen.
Guido
Nee helaas Guido, heb ik geprobeerd maar maakt niets uit.
Dus als ik voor de eerste maal inlog (bij opstarten van de browser), gaat het goed. Daarna uitlog, gaat het goed. Maar daarna voor een tweede maal inloggen krijg ik weer de melding in het tabblad:
âEr is iets fout gegaan.â en de melding âJe probeert uit te loggen van â âWeet je zeker dat je wilt uitloggen?â
Lastig…..
Dit is de URL waarbij ik voor de tweede maal wil inloggen….
Als ik uitlog via die uitloglink die in mijn menu is komen te staan, is dit het enige dat achter mijn domein staat: wp-login.php?loggedout=true&wp_lang=nl_NL
En ik kom weer uit bij het inlogscherm.
Bij jou staat er een redirect in de URL en ook een nonce. De nonce is voor eenmalig gebruik, dus werkt niet voor 2e keer. Dus iets in jouw site veroorzaakt dit, ik dacht zelf die plugin. Of anders een cache plugin?
Guido
Ik heb die plugin ‘LoginPress’ een keer gedeactiveerd maar dat maakte niet uit. Ik heb ook geen cache plugin geactiveerd. Heb ook een alle plugins gedeactiveerd en een voor een aangezet maar geen resultaat.
Het m.n. inderdaad die 2e keer na in- en uitgelogd te zijn geweest.
Inlogscherm na in- en uitloggen:
https://allure2.nl/wp-login.php?redirect_to=https%3A%2F%2Fallure2.nl%2Fwp-login.php%3Faction%3Dlogout%26_wpnonce%3D16753ac6a6&loggedout=true&wp_lang=nl_NL
Foutmelding na inloggen (2e keer)
https://allure2.nl/wp-login.php?action=logout&_wpnonce=c1584edc5c
Thnx!
Corné
Hoi Guido,
Ik heb het gevonden! Dit was de oplossing
function change_menu($items){
foreach($items as $item){
if( $item->title == "Logout"){
$item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' );
}
}
return $items;
}
add_filter('wp_nav_menu_objects', 'change_menu');
Daarna:
If you want to redirect to the login page after logout then you should append login URL as:
$item->url = $item->url . "&_wpnonce=" . wp_create_nonce( 'log-out' ).'&redirect_to='.wp_login_url();
Dit werkt en geen melding meer die we niet willen!
Bedankt voor je medewerking!
gr. Corné
-
Deze reactie is gewijzigd 3 maanden, 1 week geleden door
corneallure2.
Hallo Corné,
Mooi dat het nu wel goed werkt, bedankt voor de update en graag gedaan!
Guido