Here’s a complete guide to adding a logout link as a dropdown item under an “Account” menu in WordPress navigation:
Method 1: Using WordPress Menu Builder (No Code)
- Go to Appearance > Menus in your WordPress dashboard
- Select the menu you want to edit or create a new one
- Click Screen Options at the top and check “Logout Link”
- Now you’ll see a “Logout” option under “Links” that you can add to your menu
- Drag it under your “Account” parent menu item
Method 2: Programmatically Add Logout Link (functions.php)
function add_logout_menu_item($items, $args) {
if (is_user_logged_in() && $args->theme_location == 'primary') { // Change 'primary' to your menu location
$items .= '<li class="menu-item logout-link"><a href="' . wp_logout_url(home_url()) . '">Log Out</a></li>';
}
return $items;
}
add_filter('wp_nav_menu_items', 'add_logout_menu_item', 10, 2);
Method 3: Custom Menu Walker (For More Control)
class Custom_Nav_Walker extends Walker_Nav_Menu {
function end_el(&$output, $item, $depth = 0, $args = null) {
if ($item->title === 'Account' && is_user_logged_in() && $depth === 0) {
$output .= '<ul class="sub-menu">';
$output .= '<li class="menu-item"><a href="' . wp_logout_url() . '">Log Out</a></li>';
$output .= '</ul>';
}
parent::end_el($output, $item, $depth, $args);
}
}
Then in your theme where you call the menu:
wp_nav_menu(array(
'theme_location' => 'primary',
'walker' => new Custom_Nav_Walker()
));
Method 4: Using a Plugin
- Install a plugin like “Menu Icons” or “Nav Menu Roles”
- These plugins give you more control over menu items, including adding logout links
-
You can then add a custom link with the URL:
<?php echo wp_logout_url(); ?>
Styling the Logout Button (CSS)
/* Style the logout link differently */
.logout-link a {
color: #ff0000 !important;
}
/* Or add an icon */
.logout-link a:before {
content: "\f08b";
font-family: "FontAwesome";
margin-right: 5px;
}
You might want to conditionally show this only when a user is logged in by wrapping it in if (is_user_logged_in()) in your template files.