Comment ajouter un lien au menu de navigation principal avec l'attribut class="right"
?
J'ai essayé d'ajouter un lien statique à example.com/wp-logout.php?action=logout
, mais cela mène à une page de confirmation de déconnexion. Y a-t-il un moyen d'en faire un lien de déconnexion?
Vous pouvez y parvenir en utilisant le hook wp_nav_menu_items
. Jetons un coup d'oeil au morceau de code suivant qui montre le lien de connexion/déconnexion sur l'emplacement du menu primary
.
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;
}
C'est ce que nous avons mis en œuvre dans l'exemple ci-dessus.
wp_nav_menu_items
hook et attaché une fonction à celui-ci.primary
, nous avons vérifié si l’utilisateur est connecté ou non.Log Out
sinon le lien Log In
.class="right"
du code ci-dessus pour répondre à vos besoins.Vous pouvez trouver une explication détaillée sur ce blog .
Ajoutez un lien personnalisé avec http://example.com/wp-login.php?action=logout Cela a fonctionné pour moi!
Mon menu de pied de page est un widget , donc j’ai eu des difficultés à utiliser le code de Chittaranjan. La version modifiée suivante fonctionne pour moi. J'ai également changé les liens et les ai rendus "dynamiques": la connexion mène à une page de votre choix, la déconnexion reste soit sur la page actuelle, soit envoyée à la maison, si la page actuelle est votre page de connexion (privée). Idéalement, il vérifierait si votre page de connexion est réellement privée, mais je ne sais pas comment faire cela, désolé.
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;
}