25% off ProSNIPC25OFF

Add Logout Link to Navigation Menu

Appends a logout link (or a login link for guests) to the primary navigation menu, automatically using the correct URL and label based on auth state.

PHPby SnipCraft
php
<?php
if ( ! function_exists( 'scseed_nav_logout_link' ) ) {
    function scseed_nav_logout_link( $items, $args ) {
        if ( 'primary' !== $args->theme_location ) {
            return $items;
        }
        if ( is_user_logged_in() ) {
            $url   = wp_logout_url( home_url( '/' ) );
            $label = __( 'Log Out', 'scseed' );
        } else {
            $url   = wp_login_url( get_permalink() );
            $label = __( 'Log In', 'scseed' );
        }
        $items .= '<li class="menu-item scseed-login-item">'
                . '<a href="' . esc_url( $url ) . '">' . esc_html( $label ) . '</a>'
                . '</li>';
        return $items;
    }
    add_filter( 'wp_nav_menu_items', 'scseed_nav_logout_link', 10, 2 );
}
#login#menu#navigation#users