Joomla Menu System — Menu Types, Menu Items and Hierarchy
In this tutorial, you'll learn how the Joomla menu system works — creating menus and menu items, understanding menu item types like Single Article and Category Blog, building menu hierarchy with parent items, and assigning menu modules to positions.
What You'll Learn
- The Menu Manager and how it lists all menus on your site
- Creating new menus and defining their properties
- Creating menu items with various types
- Understanding menu item types: Single Article, Category Blog, Category List, Featured Articles, and more
- Building menu hierarchy with parent items and ordering
- Assigning menu modules to positions on your site
- Configuring menu item options: page display, page title, template style
- Using system links for URL, separator, and heading items
Why It Matters
In Joomla, every page must be linked to a menu item. Even if you hide the menu module, the menu item must exist for the page to be accessible. This makes the menu system central to your site's architecture. Understanding how menus work — not just how to add items but how they control page URLs, metadata, and template style — is essential for building any Joomla site.
Real-World Use
A restaurant website needs: a homepage with featured dishes, a menu page listing all menu items (category blog), a contact page with a contact form, an about page (single article), and a reservations link (external URL). Each of these is a menu item of a different type. The main navigation menu in the header, a footer menu with privacy and terms links, and a sidebar menu with food categories. Joomla's menu system handles all of these.
Learning Path
flowchart LR A["Workflow & Publishing"] --> B["Menu System
You are here"]:::current B --> C["Menu Item Types"] C --> D["Modules & Positions"] D --> E["Custom HTML Modules"] classDef current fill:#38bdf8,color:#0f172a,stroke-width:2px
Menu Manager
The Menu Manager is accessed through Menus > Manage. It lists all the menus on your site. The default Joomla installation creates one menu:
- Main Menu: The primary navigation menu
Each row shows:
- Title: Human-readable menu name
- Menu Type: Unique system name used by the menu module (e.g., "mainmenu")
- Description: Optional description of the menu's purpose
- # Items: Number of menu items in this menu
- ID: Internal database ID
Creating a New Menu
To create a new menu:
- Go to Menus > Manage.
- Click the New button.
- Enter a Title (e.g., "Footer Menu").
- Enter a Menu Type (e.g., "footermenu" — must be unique, no spaces).
- Optionally enter a Description.
- Save.
When you create a new menu, Joomla also creates a corresponding module of type "Menu" that is unpublished by default. You must configure and publish this module for the menu to appear on the front end.
Creating Menu Items
To create a menu item:
- Go to Menus > [Menu Name] or Menus > All Menu Items.
- Click the New button.
- Choose a Menu Item Type.
- Fill in the menu item details.
- Configure options.
- Save.
Menu Item Types Overview
Menu item types are organized by category:
Articles:
- Single Article: Display one specific article
- Category Blog: Display articles in blog format
- Category List: Display articles in list format
- Featured Articles: Display all featured articles
- Archived Articles: Display archived articles grouped by month
- All Categories: Show all categories in a list
Contacts:
- Single Contact: Display one contact
- Category List: Display contacts in a category
- Featured Contacts: Display featured contacts
Search:
- Search: Basic search form
- Smart Search: Enhanced search with filters
News Feeds:
- Single News Feed: Display one RSS feed
- Category List: List news feeds in a category
System Links:
- External URL: Link to any URL
- Separator: Visual separator in the menu
- Heading: Non-clickable heading in the menu
Language Switcher:
- Language Switcher: Switch between site languages
Tags:
- Tagged Items: Display items with a specific tag
- Compact List of Tags: List all tags
Users:
- Login Form: Display login form
- User Profile: Display user profile
- Registration Form: Display registration form
Menu Item Details
After choosing a type, configure these basic fields:
- Menu Title: Text that appears in the menu
- Alias: URL-friendly version (auto-generated)
- Menu Location: Which menu this item belongs to
- Status: Published or Unpublished
- Access: View level (Public, Registered, Special)
- Parent Item: If this is a sub-item, select the parent
- Default Page: Set as the home page
- Target Window: Open in same window, new window, or modal
Menu Item Options
The Options tab controls page display:
- Browser Page Title: The title tag for this page
- Page Heading: The h1 heading shown on the page
- Show Page Heading: Whether to display the heading
- Page Class: CSS class for the page wrapper div
- Template Style: Override the template for this page
- Menu Style: Override the menu style for this item
- Show Breadcrumbs: Show or hide breadcrumbs on this page
Menu Hierarchy
Menu items can be organized hierarchically. A parent item can have child items, creating dropdown menus.
Creating Parent-Child Relationships
When creating or editing a menu item, the Parent Item field lists all existing items in the same menu. Select a parent to make this item a child.
Example hierarchy:
Home (parent: none)
About Us (parent: none)
Our Team (parent: About Us)
Our History (parent: About Us)
Services (parent: none)
Web Design (parent: Services)
Development (parent: Services)
PHP (parent: Development)
JavaScript (parent: Development)
Contact (parent: none)
Ordering Menu Items
In the menu items list, you can reorder items by:
- Dragging the order icon up or down
- Editing the order number in the Order column
The order determines the sequence in the menu module.
Menu Modules
A menu module displays a menu on the front end. Each menu automatically gets a corresponding module when created, but it is unpublished by default.
Configuring a Menu Module
- Go to Extensions > Modules.
- Find the module matching your menu (e.g., "Main Menu").
- Configure:
- Title: Display title (can be hidden)
- Show Title: Show or hide the module title
- Position: Where the menu appears on the page
- Select Menu: Which menu this module displays
- Base Item: The starting point for the menu tree
- Start Level: Minimum depth to show
- End Level: Maximum depth to show
- Show Sub-menu Items: Expand child items
- Assign to menu items (typically "All" for the main nav).
- Set access level and publishing dates.
Multiple Menu Modules
You can display the same menu in multiple positions with different configurations. For example:
- Main navigation in header: start level 0, end level 1 (shows top level only for horizontal nav)
- Sidebar navigation: start level 0, end level 3 (shows full tree for side nav)
Default Menu Item
The Default Page star icon designates which menu item is the home page of your site. Only one menu item across all menus can be set as default.
When you install Joomla, the first article you see is whatever menu item is marked with the star. To change your home page, go to Menus > All Menu Items and click the star icon on a different item.
System Links
External URL
Use this to link to any URL outside your Joomla site. Enter the full URL including http:// or https://. Set the target to "New Window with Navigation" to open external links in a new tab.
Separator
A separator creates a visual break in the menu without being clickable. Useful for grouping related menu items visually.
Heading
A heading is a non-clickable text item in the menu. Use headings to label groups of sub-items in dropdown menus.
Common Mistakes
Creating articles without menu items: Beginners create articles and cannot find them on the front end. Every article needs a menu item (or a module) linking to it to be accessible.
Not setting a default menu item: If no menu item is marked as the default (star), visitors see a blank page or error when visiting your site root URL.
Creating too many top-level menu items: A horizontal nav bar with 10+ items forces users to scroll or squeezes text. Keep top-level items to 5-7 max and use sub-menus for deeper content.
Ignoring the Base Item setting in menu modules: The "Base Item" setting controls which branch of the menu tree is displayed. Set it to "Current" to show only the active branch in side menus.
Forgetting to publish the menu module: Creating a menu and its items is only half the work. The menu module must be published and assigned to a position for the menu to appear on the front end.
Practice Questions
Why must every article in Joomla be linked to a menu item? Answer: Joomla uses menu items as the primary routing mechanism. Article URLs are derived from menu items. Without a menu item pointing to an article, there is no URL path to access it.
What is the difference between a Menu and a Menu Item? Answer: A Menu is a collection of items (like "Main Menu"). A Menu Item is a single link within a menu (like "About Us"). A menu module displays a menu on the front end.
How do you create a dropdown sub-menu in Joomla? Answer: Create child menu items by setting the "Parent Item" field when creating or editing the item. The menu module's "End Level" setting controls how many levels display in the dropdown.
Challenge: Create a complete navigation structure for a university website with at least 4 menus: Main Navigation, Footer Links, Student Resources, and Academic Departments. Include at least 20 menu items across all menus with proper hierarchy (3 levels deep in some areas). Create corresponding menu modules for each menu and assign them to appropriate positions.
FAQ
Mini Project
Your task: Build the full navigation system for a portfolio website.
Create a Main Menu with these items:
- Home (Featured Articles, set as default)
- Portfolio (Category Blog, with "Web" and "Design" sub-items)
- About Me (Single Article)
- Blog (Category List)
- Contact (Single Contact)
- External: GitHub (External URL)
Create a Footer Menu with:
- Privacy Policy (Single Article)
- Terms of Service (Single Article)
- RSS Feed (External URL)
Create a sidebar menu module showing the Portfolio branch with sub-items expanded.
Configure the Main Menu module in the header position (position-1) showing only the top level.
Set appropriate page titles, headings, and template styles for each menu item.
Test navigation on the front end, verifying all links work and dropdowns function.
What's Next
Now that you understand the menu system, explore every menu item type in detail:
Continue to Lesson 12: Menu Item Types — Detailed guide to every Joomla menu item type from Single Article to Language Switcher.
Related lessons:
- Joomla Modules and Module Positions — How menu modules display menus on pages
- Joomla Articles and Categories — Content types that menu items display
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro