How to Display Different Menus for Logged In Users in WordPress

Home » Snippets » How to Display Different Menus for Logged In Users in WordPress

Created with:



Creator: WPTurbo Team

Customize with WPTurbo AI

Add Snippet To Project

New Project
Add To Existing Project

Are you looking to customize the menu options for users on your WordPress site based on whether they are logged in or not? Having a personalized and tailored navigation experience can greatly enhance user engagement and satisfaction. In this article, we will guide you through the process of displaying different menus for logged in users in WordPress, allowing you to create a more dynamic and user-friendly website. Whether you want to show additional options to logged in users or provide exclusive content, we’ve got you covered. Let’s dive in and learn how to implement this valuable feature!

					function wpturbo_display_logged_in_menu() {
    if ( is_user_logged_in() ) {
        wp_nav_menu( array(
            'theme_location' => 'logged-in-menu',
            'menu_class'     => 'logged-in-menu',
            'container_class' => 'menu-container',
        ) );
add_action( 'wp_nav_menu', 'wpturbo_display_logged_in_menu' );

The code snippet above allows you to display different menus for logged-in users on your WordPress website. This can be useful for creating personalized navigation options based on the user’s login status.

Let’s break down how the code works step by step.

The first part of the code defines a new function called wpturbo_display_logged_in_menu(). Inside this function, we use the is_user_logged_in() function to check if the current user is logged in or not. If they are logged in, we proceed to display the menu.

The wp_nav_menu() function is used to generate the menu and display it on the webpage. It accepts an array of parameters that allows you to customize various aspects of the menu, such as its theme location, CSS classes, and container.

In the code snippet, we specify the theme location as 'logged-in-menu'. This assumes that you have defined a menu location with this name in your theme’s functions.php file or in a custom theme configuration file. If you have multiple menus, you can create different theme locations for each menu and specify the appropriate one here.

The 'menu_class' parameter is used to assign a CSS class to the menu. In this case, it is set as 'logged-in-menu'. You can customize this class to style the menu as per your design requirements.

The 'container_class' parameter is used to assign a CSS class to the container of the menu. This allows you to apply specific styles to the container if needed. In this example, we set it as 'menu-container'.

Finally, we hook the wpturbo_display_logged_in_menu() function into the wp_nav_menu action. This ensures that the custom menu is displayed whenever the wp_nav_menu() function is called.

By using this code snippet, you can easily display a different menu for logged-in users on your WordPress website.

Register an account to save your snippets or go Pro to get more features.