Skip to content

Drupal Menus, Blocks & Taxonomies — Navigation & Classification Guide

DodaTech Updated Jun 6, 2026 8 min read

Navigation and content classification are the road signs of your website. Without clear menus, visitors get lost. Without taxonomy, your content is a pile of unrelated pages. Drupal gives you powerful tools for both — menus with unlimited nesting, blocks that slot into theme regions, and a taxonomy system far more flexible than WordPress’s simple categories and tags.

What You’ll Learn

  • Creating and managing menus with hierarchical links
  • Understanding theme regions and placing blocks
  • Building taxonomy vocabularies with parent-child terms
  • Managing comments with moderation workflows
  • Configuring block visibility by path, role, or content type

Why Navigation Architecture Matters

Think of your website like a shopping mall. Menus are the directory signs telling visitors where things are. Blocks are the stores and kiosks that appear in different parts of the mall. Taxonomies are the aisle labels that group related items together.

A well-organized navigation architecture means visitors find what they need in seconds. Poor navigation? They leave. DodaTech’s own tutorials use hierarchical menus and taxonomy-based cross-references — the same principles that keep Durga Antivirus Pro’s documentation intuitive.

    flowchart LR
    A["Drupal Content Management"] --> B["Menus, Blocks & Taxonomies<br/><strong>You are here</strong>"]:::current
    B --> C["Themes, Layouts & Extensions"]

    classDef current fill:#38bdf8,color:#0f172a,stroke-width:2px;
  
Prerequisites: Drupal 10 installed with Standard profile. Familiarity with creating content types and nodes from the previous tutorial.

Menus in Drupal

Drupal provides three default menus: Main Navigation, Footer, and User Menu. You can create unlimited custom menus for different purposes.

Creating a Menu

  1. Structure → Menus → Add menu
  2. Enter a title (e.g., “Secondary Navigation”)
  3. Click Save

Adding Links to a Menu

  1. Click Add link on the menu page
  2. Configure:
    • Link — Internal path (/node/1, /contact) or external URL
    • Menu link title — Display text visible to users
    • Description — Tooltip text (shown by some themes)
    • Parent link — Nest items to create hierarchical menus
    • Weight — Sort order (lighter values float to the top)
    • Enabled — Show or hide the link without deleting it

Menu Hierarchy Example

Main Navigation
├── Home          (/node/1)
├── About Us      (/node/2)
│   ├── Our Team  (/node/5)
│   └── Careers   (/node/6)
├── Services      (/node/3)
│   ├── Web Dev   (/node/7)
│   └── Design    (/node/8)
└── Contact       (/contact)

Limit nesting to 3 levels maximum — deeper menus confuse users and harm mobile usability.

Blocks and Regions

Blocks are discrete pieces of content that you place in regions (named areas defined by the theme). Think of regions as parking spaces and blocks as cars — each region can hold multiple blocks, and blocks can be rearranged between regions.

Default Blocks

Drupal installs with several built-in blocks:

  • Page title — Displays the page title
  • Main page content — Renders the primary content
  • Breadcrumb — Navigation breadcrumb trail
  • User login — Login form block
  • Powered by Drupal — Footer credit
  • Primary admin actions — Action buttons for content editors

Placing a Block

  1. Structure → Block layout
  2. Find the region (e.g., Sidebar First) and click Place block
  3. Search or browse available blocks
  4. Configure:
    • Title — Override or hide the block title
    • Visibility settings — Show on specific pages, content types, or user roles
    • Region — Which region to appear in
    • Weight — Order within the region

Block Visibility

One of Drupal’s most powerful features: you can show/hide blocks based on:

ConditionExample
Page pathShow “Contact Info” block only on /contact
Content typeShow “Related Articles” block only on Article pages
User roleShow “Admin Links” block only for administrators
LanguageShow language-specific content blocks

Custom Block Types

Create custom block types with fields (like content types):

  1. Structure → Block layout → Block types → Add block type
  2. Add fields (text, image, file, link)
  3. Create instances at Block layout → Place block → Custom block

Taxonomies

Taxonomy is Drupal’s content classification system. Unlike WordPress which has exactly two taxonomies (Categories and Tags), Drupal gives you unlimited vocabularies — each with its own fields and hierarchy.

Core Concepts

TermMeaningExample
VocabularyA set of terms (like a category group)“Topics”, “Departments”, “Regions”
TermA single classification“Technology”, “HR”, “Europe”
HierarchyParent-child relationshipsTechnology → Web Dev → Frontend

Creating a Vocabulary

  1. Structure → Taxonomy → Add vocabulary
  2. Name it (e.g., “Topics”)
  3. Configure settings:
    • Hierarchy — Allow parent-child term relationships
    • Tags-style — Allow free-tagging (terms created on the fly)
  4. Click Save

Adding Terms

  1. Click Add term on the vocabulary page
  2. Enter Name and optional Description
  3. Set Parent term if hierarchical
  4. Add custom fields if configured
  5. Click Save

Attaching Taxonomy to Content

  1. Structure → Content types → Manage fields (e.g., Article)
  2. Add a field of type Term reference
  3. Select the vocabulary (e.g., “Topics”)
  4. Configure the widget type:
    • Select list — Predefined choices
    • Autocomplete — Type to search
    • Checkboxes/radio buttons — Quick selection

Listing Content by Taxonomy

Use Views to create taxonomy-filtered listings:

  1. Structure → Views → Add view
  2. Show Content filtered by Taxonomy term
  3. Add a contextual filter: Content: Has taxonomy term ID
  4. Visit /taxonomy/term/{tid} to see matching content

Comments

Enabling Comments

  1. Structure → Content types → Edit (e.g., Article)
  2. Under Comment settings:
    • Open — New comments allowed
    • Closed — No new comments, existing ones hidden
    • Hidden — Comments disabled entirely
  3. Configure:
    • Threading — Allow nested replies
    • Permalink — Link to individual comments
    • Default number of comments — Per page
    • Anonymous commenting — Allow or require login

Moderating Comments

  1. Content → Comments (/admin/content/comment)
  2. Review comments in the Unapproved tab
  3. Publish, Unpublish, or Delete individual comments
Spam comments are a major issue on public-facing sites. Always install the CAPTCHA or Honeypot module, and require manual approval for anonymous commenters.

Common Mistakes

1. Too Many Menu Levels

Deeply nested menus (beyond 3 levels) harm usability. Use taxonomy or search for deeper content discovery.

2. Not Using Block Visibility

Placing blocks on every page without configuring visibility settings leads to clutter. Show blocks only on relevant pages via path rules or content type conditions.

3. Ignoring Taxonomy Field Weight

When adding terms, the weight field determines sort order. All terms with the same weight sort alphabetically — use weight to enforce a custom order.

4. Enabling Comments Without Moderation

Unmoderated comments quickly fill with spam. Always require manual approval for anonymous or new users.

5. Forgetting to Rebuild Cache After Menu Changes

Menu and block changes don’t always appear immediately. Run drush cr to rebuild the cache and see your changes.

Practice Questions

  1. What is the difference between a block and a region?
    Answer: Regions are placeholders in the theme template (header, sidebar, footer). Blocks are the content that fills those placeholders. A region can contain multiple blocks.

  2. How is Drupal’s taxonomy different from WordPress’s categories/tags?
    Answer: WordPress has exactly two fixed taxonomies. Drupal supports unlimited vocabularies, each configurable as hierarchical or flat, with custom fields on terms.

  3. What does block visibility configuration let you control?
    Answer: You can show/hide blocks based on page path, content type, user role, language, and custom PHP conditions.

  4. Challenge: Create a “Topics” vocabulary with terms: Technology, Design, Marketing. Under Technology, add sub-terms: Web Development, AI/ML, Mobile Apps. Attach the Topics vocabulary to the Article content type. Create a View that lists articles filtered by topic. Create a block that shows the topic taxonomy tree in the sidebar.

FAQ

Can I have multiple main menus?
: Yes. Drupal supports unlimited menus. Place multiple menu blocks in the same region, and use block visibility to show the appropriate menu on different pages.
How do I create an automatic sitemap from my menu?
: Enable the core Menu module and use the XML Sitemap contributed module (drupal/xmlsitemap). Submit the generated sitemap to Google Search Console.
Can I restrict which roles can comment?
: Yes. Configure Comment module permissions at People → Permissions. Set anonymous commenting in Structure → Content types → Comment settings.
What is the difference between a term reference and an entity reference?
: Term reference links to taxonomy terms specifically. Entity reference can link to any entity (node, user, file). Use term reference for classification; entity reference for relationships between content items.
How do I reorder menu items?
: Use the weight field when adding/editing links. Lower weight = appears first. You can also drag-and-drop in the menu management page if the core Menu module’s drag handles are enabled.

Try It Yourself

  1. Create a custom menu “Resources” with 5 links (2 with parent-child hierarchy)
  2. Place a “User Login” block in the sidebar, visible only for anonymous users
  3. Create a “Departments” vocabulary with 4 terms and attach it to the Basic Page content type
  4. Enable comments on Articles and configure threading
  5. Run drush cr after making changes

What’s Next

TopicDescription
Themes, Layouts & ExtensionsTwig templating, Layout Builder, and contributed modules
Users, Security & AdministrationUser roles, permissions, security hardening, multilingual
HTMLUnderstanding block and region markup
CSSStyling blocks and menus
PHPCreating custom block plugins

What’s Next

Congratulations on completing this Drupal Menus Blocks Taxonomies tutorial! Here’s where to go from here:

  • Practice daily — Consistency is more important than long study sessions
  • Build a project — Apply what you learned by building something real
  • Explore related topics — Check out other tutorials in the same category
  • Join the community — Discuss with other learners and share your progress

Remember: every expert was once a beginner. Keep coding!

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro