Knowing how to create a WordPress menu is one of the most essential skills for anyone building or managing a WordPress website. A well-structured navigation menu helps visitors find content quickly, improves user experience, and can even support your SEO efforts by establishing a clear site hierarchy.
Understanding WordPress Menus
WordPress menus are collections of links that appear in designated areas of your theme, typically in the header, footer, or sidebar. Before you start building, it helps to understand a few key concepts.
What Is a Menu Location?
Every WordPress theme registers one or more menu locations — named slots where a menu can be displayed. Common locations include Primary Navigation, Footer Menu, and Social Links Menu. The exact locations available depend entirely on your active theme.
What Can You Add to a Menu?
WordPress menus are flexible. You can add the following item types:
- Pages — static pages like About, Contact, or Services
- Posts — individual blog posts
- Custom links — any URL, internal or external
- Categories and tags — archive pages for your taxonomy terms
- Custom post types — if your theme or plugins register them
How to Create a WordPress Menu in the Dashboard
The classic WordPress menu editor is found under Appearance > Menus. Follow these steps to create your first menu.
Step 1 — Open the Menu Editor
- Log in to your WordPress admin dashboard.
- In the left sidebar, hover over Appearance and click Menus.
- You will see the Menu editor screen. If no menus exist yet, you will be prompted to create one.
Step 2 — Create a New Menu
- Click the link that reads create a new menu.
- Type a name for your menu in the Menu Name field. For example:
Main Navigation. - Click the Create Menu button. WordPress saves the empty menu immediately.
Step 3 — Add Items to Your Menu
- On the left-hand panel, you will see tabs for Pages, Posts, Custom Links, and Categories.
- Click the Pages tab and tick the checkboxes next to the pages you want to include.
- Click Add to Menu. The selected pages will appear as items in the menu structure on the right.
- Repeat this process for any other item types you wish to add.
- To add a custom link, click the Custom Links tab, enter a URL and a link text (label), then click Add to Menu.
Step 4 — Organise Menu Items and Create Dropdowns
- Drag menu items up or down in the list to reorder them.
- To create a dropdown submenu, drag a menu item slightly to the right beneath its intended parent item. It will become indented, indicating it is now a child item.
- Click the arrow on any menu item to expand its settings, where you can change the Navigation Label, add a Title Attribute, or remove the item.
Step 5 — Assign the Menu to a Location
- Scroll down to the Menu Settings section at the bottom of the menu editor.
- Under Display location, tick the checkbox next to the theme location where you want this menu to appear (for example,
Primary Menu). - Click Save Menu. Your menu is now live on the front end of your site.
How to Create a WordPress Menu Using the Block Editor (Site Editor)
If you are using a block theme (also called a Full Site Editing or FSE theme, such as Twenty Twenty-Three or Twenty Twenty-Four), the menu system works differently. Navigation is handled by the Navigation block inside the Site Editor.
Accessing the Site Editor
- Go to Appearance > Editor in your dashboard.
- Click on the template part that contains your header, or navigate to Patterns > Template Parts > Header.
- Click the Edit button to open the block editor for that template part.
Adding and Configuring the Navigation Block
- Click the + block inserter button where you want the menu to appear.
- Search for Navigation and click the Navigation block to insert it.
- In the block toolbar or sidebar panel, choose to start with an existing classic menu (if you have one), use all pages, or start from scratch.
- Click the + icon inside the Navigation block to add new menu items, including Pages, Custom Links, or other blocks.
- Use the block settings in the right sidebar to adjust orientation (horizontal or vertical), overlay menu behaviour, and styling options such as colours and typography.
- Click Save in the top right corner to publish your changes.
Managing Menus with WP-CLI
If you prefer the command line — or are managing multiple sites — WP-CLI gives you complete control over WordPress menus without touching the admin dashboard. This is especially useful for developers and DevOps workflows.
Common WP-CLI Menu Commands
The following commands cover the most common menu management tasks:
# Create a new menu
wp menu create "Main Navigation"
# List all existing menus
wp menu list
# Add a page (ID 2) to a menu (by menu name or ID)
wp menu item add-post main-navigation 2 --title="Home"
# Add a custom link to the menu
wp menu item add-custom main-navigation "https://example.com/contact" "Contact Us"
# Assign the menu to a theme location
wp menu location assign main-navigation primary
# View all registered theme menu locations
wp menu location list
Using WP-CLI is a great time-saver when you need to set up menus across multiple sites or automate deployments. Replace main-navigation with the slug of your actual menu.
Advanced Menu Customisation Tips
Once your basic menu is working, there are several advanced techniques to make it even more powerful and user-friendly.
Adding CSS Classes to Menu Items
You can add custom CSS classes to individual menu items to style them independently. First, enable the CSS Classes column:
- In Appearance > Menus, click the Screen Options tab in the top right corner of the screen.
- Tick the checkbox labelled CSS Classes.
- Expand any menu item and you will now see a CSS Classes (optional) field where you can enter your custom class names.
Creating a Mega Menu
For sites with many pages, a mega menu — a wide dropdown showing multiple columns of links — improves navigation dramatically. Most premium themes include this feature, and free plugins such as Max Mega Menu or WP Mega Menu can add it to any theme.
Adding Menus to Widgetised Sidebars
If your theme has widget areas, you can display a menu in a sidebar or footer column by going to Appearance > Widgets, adding the Navigation Menu widget to the desired widget area, and selecting which menu to display.
Registering a Custom Menu Location in a Child Theme
If your theme does not have enough menu locations, you can register a new one by adding the following snippet to your child theme's functions.php file:
// Register a custom menu location
function my_theme_register_menus() {
register_nav_menus(
array(
'top-bar-menu' => __( 'Top Bar Menu', 'your-theme-textdomain' ),
'footer-bottom' => __( 'Footer Bottom Menu', 'your-theme-textdomain' ),
)
);
}
add_action( 'init', 'my_theme_register_menus' );
After adding this code, the new locations will appear under Menu Settings > Display location in the menu editor, ready to be assigned.
Troubleshooting Common WordPress Menu Problems
Even experienced WordPress users run into menu issues. Here are the most frequent problems and how to resolve them.
Menu Not Showing on the Front End
If your menu saves correctly but does not appear on the website, check the following:
- Confirm you have assigned the menu to a Display location in the menu editor.
- Make sure your theme actually calls
wp_nav_menu()for that location in its template files. - Check whether a caching plugin is serving an old version of your site — clear all caches and reload.
Dropdown Menus Not Working
Dropdowns that appear in the editor but fail on the front end are usually caused by a JavaScript conflict or missing CSS. Try these fixes:
- Disable plugins one by one to identify a JavaScript conflict.
- Switch temporarily to a default theme (Twenty Twenty-Four) to rule out a theme bug.
- Check your browser's developer console for JavaScript errors.
Menu Items Appearing in the Wrong Order
If menu items keep reverting to an unexpected order, make sure you click Save Menu after every change. It is easy to forget this step after a long editing session. Also check if any plugin is programmatically overriding menu order.
Frequently Asked Questions
How many menus can I create in WordPress?
WordPress does not impose a hard limit on the number of menus you can create. You can have as many menus as you like, but you can only assign one menu per theme location at a time. This means you can create separate menus for your header, footer, mobile navigation, and sidebar without any issues.
Why does the Menus option not appear under Appearance?
If you do not see Appearance > Menus, you are most likely using a Full Site Editing (block) theme. FSE themes manage navigation through the Site Editor (Appearance > Editor) using the Navigation block instead of the classic menu interface. Switching to a classic theme will restore the Menus option.
Can I add a menu item that opens in a new tab?
Yes. In Appearance > Menus, first enable the Link Target option under Screen Options. Then expand the menu item you want to modify and tick the checkbox labelled Open link in a new tab. Save your menu to apply the change.
How do I remove a menu item from a WordPress menu?
In the menu editor, click the arrow icon on the menu item you want to remove to expand its settings panel. At the bottom of that panel, click Remove. The item will be deleted from the menu immediately. Remember to click Save Menu to make the change permanent.
Creating and managing WordPress menus is straightforward once you know where to look — whether you use the classic Menus editor, the block-based Site Editor, or WP-CLI for command-line control. If you want an even faster way to handle tasks like this, WP AI Agent is an AI-powered tool that lets you create menus, add pages, and configure your entire WordPress site through simple natural-language chat commands — no clicking through dashboards required.