Title: wp_initial_nav_menu_meta_boxes
Published: April 25, 2014
Last modified: February 24, 2026

---

# wp_initial_nav_menu_meta_boxes()

## In this article

 * [Source](https://developer.wordpress.org/reference/functions/wp_initial_nav_menu_meta_boxes/?output_format=md#source)
 * [Related](https://developer.wordpress.org/reference/functions/wp_initial_nav_menu_meta_boxes/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/functions/wp_initial_nav_menu_meta_boxes/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/functions/wp_initial_nav_menu_meta_boxes/?output_format=md#wp--skip-link--target)

Limit the amount of meta boxes to pages, posts, links, and categories for first 
time users.

## 󠀁[Source](https://developer.wordpress.org/reference/functions/wp_initial_nav_menu_meta_boxes/?output_format=md#source)󠁿

    ```php
    function wp_initial_nav_menu_meta_boxes() {
    	global $wp_meta_boxes;

    	if ( get_user_option( 'metaboxhidden_nav-menus' ) !== false || ! is_array( $wp_meta_boxes ) ) {
    		return;
    	}

    	$initial_meta_boxes = array( 'add-post-type-page', 'add-post-type-post', 'add-custom-links', 'add-category' );
    	$hidden_meta_boxes  = array();

    	foreach ( array_keys( $wp_meta_boxes['nav-menus'] ) as $context ) {
    		foreach ( array_keys( $wp_meta_boxes['nav-menus'][ $context ] ) as $priority ) {
    			foreach ( $wp_meta_boxes['nav-menus'][ $context ][ $priority ] as $box ) {
    				if ( in_array( $box['id'], $initial_meta_boxes, true ) ) {
    					unset( $box['id'] );
    				} else {
    					$hidden_meta_boxes[] = $box['id'];
    				}
    			}
    		}
    	}

    	$user = wp_get_current_user();
    	update_user_meta( $user->ID, 'metaboxhidden_nav-menus', $hidden_meta_boxes );
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-admin/includes/nav-menu.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-admin/includes/nav-menu.php#L226)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/nav-menu.php#L226-L250)

## 󠀁[Related](https://developer.wordpress.org/reference/functions/wp_initial_nav_menu_meta_boxes/?output_format=md#related)󠁿

| Uses | Description | 
| [wp_get_current_user()](https://developer.wordpress.org/reference/functions/wp_get_current_user/)`wp-includes/pluggable.php` |

Retrieves the current user object.

  | 
| [update_user_meta()](https://developer.wordpress.org/reference/functions/update_user_meta/)`wp-includes/user.php` |

Updates user meta field based on user ID.

  | 
| [get_user_option()](https://developer.wordpress.org/reference/functions/get_user_option/)`wp-includes/user.php` |

Retrieves user option that can be either per Site or per Network.

  |

## 󠀁[Changelog](https://developer.wordpress.org/reference/functions/wp_initial_nav_menu_meta_boxes/?output_format=md#changelog)󠁿

| Version | Description | 
| [3.0.0](https://developer.wordpress.org/reference/since/3.0.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Ffunctions%2Fwp_initial_nav_menu_meta_boxes%2F)
before being able to contribute a note or feedback.