J'utilise vingt douze avec un thème enfant. J'ai un lien dans mon menu principal de navigation où j'ai un lien pour "Mon compte" qui a un sous-menu avec un lien "Connexion/Enregistrer" qui redirige vers un fichier wp-login.php modifié. Puis-je transformer le lien "Login/Register" en un lien "Logout" lorsqu'un utilisateur est connecté? Si cela est possible, sauriez-vous comment je pourrais y parvenir ou me diriger dans la bonne direction?
Tout ce que j'ai trouvé en ligne ajoute un lien de connexion/déconnexion au menu principal. Je voudrais laisser le menu intact car le sous-menu "Mon compte" aura plus de liens ajoutés.
Je ne sais pas si cela est pertinent, mais j'ai créé le sous-menu à l'aide des menus Wordpress et créé un lien personnalisé pour le rediriger vers wp-login.php
Je vous remercie
Voici comment j'ai réussi à le configurer pour un client. Le code (qui devrait aller dans le functions.php
du thème) suppose qu'il existe un élément de menu existant intitulé "Connexion". Fonctionne bien mais n'est peut-être pas la meilleure façon, alors la critique est la bienvenue.
function wpse0520_modify_login_menu_item( $item ) {
if(isset($item->title)){
if( $item->title =='Login' ) {
if(is_user_logged_in()){
$item->url = wp_logout_url( get_permalink() );
$item->title = 'Logout';
} else {
$item->url = site_url( 'login' );
}
} elseif ( $item->title =='Logout' ) {
if(!is_user_logged_in()){
$item->url = site_url( 'login' );
$item->title = 'Login';
} else {
$item->url = wp_logout_url( get_permalink() );
}
}
}
return $item;
}
add_filter( 'wp_setup_nav_menu_item', 'wpse0520_modify_login_menu_item' );