# Show Menu Items by Login Status or Role

> Lets you hide individual menu items from guests, members or certain roles by giving them a CSS class such as wpide-logged-in, wpide-logged-out or wpide-role-editor.

- Type: PHP
- Runs: Frontend only
- Category: [Memberships](https://wpide.com/library/category/memberships/)
- Tags: menus, members, roles
- Author: WPIDE Team
- Installs: 0
- Updated: 2026-10-28
- Page: https://wpide.com/library/menu-items-by-login-and-role/

## Code

```php
add_filter( 'wp_nav_menu_objects', function ( $items ) {
    $logged_in = is_user_logged_in();
    $roles     = $logged_in ? (array) wp_get_current_user()->roles : array();
    $removed   = array();

    foreach ( $items as $key => $item ) {
        $classes = (array) $item->classes;
        $hide    = in_array( (int) $item->menu_item_parent, $removed, true );

        if ( in_array( 'wpide-logged-in', $classes, true ) && ! $logged_in ) {
            $hide = true;
        }

        if ( in_array( 'wpide-logged-out', $classes, true ) && $logged_in ) {
            $hide = true;
        }

        $role_classes = preg_grep( '/^wpide-role-/', $classes );

        if ( $role_classes ) {
            $wanted = array_map( function ( $class ) {
                return substr( $class, 11 );
            }, $role_classes );

            if ( ! array_intersect( $wanted, $roles ) && ! current_user_can( 'manage_options' ) ) {
                $hide = true;
            }
        }

        if ( $hide ) {
            $removed[] = (int) $item->ID;
            unset( $items[ $key ] );
        }
    }

    return $items;
}, 10 );
```

## Notes

Turn on "CSS Classes" under Screen Options in Appearance > Menus to add the classes. Child items of a hidden item are hidden too.

## How to use it

Install the free WPIDE plugin (https://wordpress.org/plugins/wpide/), find "Show Menu Items by Login Status or Role" in its snippet library and add it in one click; or create a new PHP snippet in WPIDE (or any code snippets plugin) and paste the code above. More snippets: https://wpide.com/library/
