Installation & Setup
Requirements
Configuration
Upgrading from v1
Overview
Available Variables
Rendering Nodes
Breadcrumbs
Navigation Field
Eager-Loading
Node Queries
Node
Nav
Events
Extensibility
GraphQL
Changelog
2.1.6 2026-10-17
Fixed
Fixed a helper class reference that could fail on case-sensitive filesystems.
2.1.5 2026-09-23
Changed
Require verbb/base 2.0.15 or later within 2.x.
Fixed
Fix a template injection vulnerability.
2.1.4 2025-09-16
Changed
Update migration-mode check.
2.1.3 2025-07-16
Changed
Update English translations.
2.1.2 2025-05-01
Fixed
Fix an error when importing nodes using FeedMe. (thanks @yakmoose).
2.1.1 2024-09-07
Changed
Improve validation message when maximum nodes per level is set (for Craft 4.11+ and 5.3+).
2.1.0 2024-07-21
Changed
Now requires Craft 4.5.0+.
Fixed
Fix an error when moving nodes between levels with level-limits set.
2.0.28 2024-06-16
Changed
Update non-English translations.
Update English translations.
Element-based nodes now have their status synced to the linked-to element.
Fixed
Fix case sensitivity checks for active state of nodes.
Fix node-update checks for element nodes checking against drafts.
2.0.27 2024-03-18
Fixed
Fix an issue with Node elements not being correctly displayed in element indexes, outside of navigation-editing contexts.
2.0.26 2024-03-04
Fixed
Fix order of operations when uninstalling the plugin.
2.0.25 2024-01-30
Added
Add support for active node state when using non-query string pagination.
Fixed
Fix icon alignment for nodes when new window or title override is set.
2.0.24 2024-01-06
Fixed
Fix not being able to manage navigations with bypassProjectConfig enabled.
Fix the “Edit” button on nodes not appearing after saving a node.
2.0.23 2023-12-08
Added
Add navigation/navs/fix-sites console command to fix missing navigation_navs_sites entries for failed Craft 3 > 4 migrations.
Changed
Change max-level check when moving elements to base-plugin for performance.
Swap hasDescendants with children to make use of eager-loading performance.
Fixed
Fix element node modal’s site not changing to the same site as the navigation.
Fix validation checks when moving nodes between levels.
Fix an error when adding elements to a navigation.
Fix the “Edit” button on nodes not appearing after saving a node.
2.0.22 2023-10-25
Added
Add Markdown support for navigation intstructions.
Fixed
Fix being able to circumvent max nodes level settings when moving nodes in the structure.
Fix custom UI for element index showing when viewing Nodes outside of Navigation.
2.0.21 2023-09-08
Added
Add the ability to use NodeQuery objects in all craft.navigation.* Twig calls.
Add missing french translations. (thanks @pascalminator).
Fixed
Fix element fields not saving correctly in Craft 4.4+.
Fix some custom field values not saving correctly.
Fix an error when restoring a deleted nav.
2.0.20 2023-08-09
Added
Add aria-current=“page” to craft.navigation.render().
Add Node::getCurrent().
Fixed
Fix an error when running resave/navigation-nodes.
2.0.19 2023-07-11
Added
Add NodeType::beforeSaveNode.
Add NodeType::getDefaultTitle.
Fixed
Fix Site not not using the site name as the default title.
2.0.18 2023-05-27
Fixed
Fix incorrect sources for element nodes in the element slide-out.
Fix when editing an existing navigation, being unable to pick site-specific elements (for element nodes).
2.0.17 2023-03-21
Changed
Improve querying nodes performanc for large sites (with a large project config).
Fixed
Fix an error when adding new nodes for large navigations.
Fix search and sort filters showing when editing a navigation.
Fix a JS error for users with the control panel set to a language containing special characters, and when switching sites when editing nodes.
Fix being unable to delete a navigation from the edit screen.
2.0.16 2023-01-06
Changed
Only admins are now allowed to access plugin settings.
Fixed
Fix a Craft 3 > Craft 4 migration.
2.0.15 2022-12-14
Fixed
Fix an error when switching node types to non-elements.
2.0.14 2022-12-03
Fixed
Fix an issue where navigation_sites database entries weren’t being created correctly.
2.0.13 2022-11-22
Fixed
Fix an issue where navigation_sites database entries weren’t being created correctly for Craft 3 > Craft 4 upgrades.
2.0.12 2022-11-21
Changed
Element nodes now throw a validation error when a linked element is not selected.
Fixed
Fix an issue where empty custom attributes would create invalid HTML.
2.0.11 2022-11-09
Added
Add “Edit Nodes” button when editing a navigation’s settings.
Fixed
Fix validation not working correctly when setting “Max Levels”, “Max Nodes” or “Max Nodes per Level”.
Fixed PHP errors that could occur when executing GraphQL queries.
Fix GraphQL queries on a Navigation field when no navigation is chosen returning incorrect nodes.
2.0.10 2022-10-28
Fixed
Fix an error when migrating from 2.0.8.
2.0.9 2022-10-28
Added
Add the ability to set "Propagation Method" on navigations, to include site group, or language-specific propagation settings.
Add “Max Nodes per Level” navigation setting to control the number of nodes per-level.
Add ability to duplicate navigation.
Add error-handling for GraphQL queries when the schema didn’t allow querying on linked element types.
Changed
Nodes are propagated to all enabled sites for the navigation by default (for multi-sites).
When changing the "Propagation Method" for navigations, nodes are now re-saved via a queue job, to assist with large navigations.
Fixed
Fix some issues with node propagation.
Fix element actions not appearing due to Craft 4.3 changes.
Removed
Removed A&M Nav and Navee Craft 2 migrations, as these are no longer applicable in Craft 4.
2.0.8 2022-10-25
Added
Add support for GraphQL querying on Navigation field within other elements.
2.0.7 2022-10-17
Added
Add the ability to set conditions on navigation field layout attributes and fields depending on node type.
Add element and elementType to breadcrumb items.
Add back link attribute for breadcrumbs.
Changed
Set dirty attributes for track changes when saving a node.
Fixed
Fix an error when saving a node, when switching its type.
Fix a formatting issue when saving nodes and the toast notification.
Fix the “Parent” value resetting after adding a node.
2.0.6 2022-09-25
Changed
Revamp breadcrumbs() function to include non-elements.
Fixed
Fix incorrect node/list names for gatsby-source-craft plugin.
Fix reordering a navigation with bypassProjectConfig enabled.
Fix deleting a navigation with bypassProjectConfig enabled.
Fix a Craft 3 migration error when navigations contain no site settings.
2.0.5 2022-08-31
Added
Add migration to fix non-multi-site’s not being enabled.
Fixed
Fix a Craft 3 migration issue where site-specific navigations weren’t marked as enabled.
Fix an error running resave console commands.
2.0.4 2022-08-25
Added
Add site dropdown to navigation index.
Add missing English Translations.
Fixed
Fix getSiteIds() not returning correctly for just the enabled sites.
Fix an error when uninstalling.
2.0.3 2022-07-02
Added
2.0.2 2022-06-01
Fixed
Fix an error when migrating non-multisites from Craft 3.
Fix incorrect permission check for structure items, when editing nodes.
Fix an error when trying to fetch parent nodes for a non-multi-site install when editing nodes.
2.0.1 2022-05-18
Added
Added active, target and element items to buildNavTree.
Added French translation (thanks @pascalminator).
Added hasChildrenClass setting to navigation.render. Now also includes a nav-children class on <li> elements that have children.
Changed
Using navgation.render() now uses eager-loading by default.
Move Add a … strings to navigation translation strings.
Fixed
Fixed missing instruction text when editing a navigation.
Fixed node.hasActiveChild returning true incorrectly.
2.0.0 2022-05-06
Added
When editing nodes, you can now toggle the status of nodes, view trashed nodes, and restore nodes.
When editing nodes, you can now duplicate, duplicate with descendants, delete, delete with descendants with multiple nodes.
When editing nodes, you can now add UI elements to node layouts.
Added the ability to set the default placement of new nodes, when adding them to a navigation.
Added the ability to set the color for custom nodes and registered elements, which show as the color indicator on the type of node in the navigation builder.
Add nested node support for Feed Me.
Add checks for registering events for performance.
Add project-config/rebuild support.
Add archiveTableIfExists() to install migration.
Changed
Now requires PHP 8.0.2+.
Now requires Craft 4.0.0+.
Now requires Navigation 1.4.24 in order to update from Craft 3.
Redesigned UI for editing navigation nodes.
When editing nodes, toggling the site is much quicker.
When editing nodes, we now lazy-load collapsed nodes to improve performance.
Editing nodes is now performed through slide-out menu, instead of HUD. This gives users much more room to edit content.
Editing nodes now properly supports multi-tabs for custom fields and UI elements.
All node attributes are now native fields. They can be included or excluded as needed, with the bonus of supporting conditions (show certain attributes based on user permissions). This can help simplify and streamline editing nodes for users.
When editing nodes, URL Suffix, Classes and Custom Attributes are now in an "Advanced" tab.
Changed Node::isManual() to Node::isCustom().
Custom URL nodes are now a Node Type - verbb\navigation\nodetypes\CustomType.
Rename base plugin methods.
Support new DefineElementInnerHtmlEvent event for modifying element index html.
Fixed
Fix an error with GraphQL.
Fix an error with incorrect NodeType casting.
Fix an error if Commerce is is enabled, but doesn’t exist.
Fix some scenarios in the navigation builder, when you were unable to nest nodes under another node, or be able to un-nest.
Fix an error when trying to set a new nodes parent.
Fix a nested node having its level reset when saving.
Fix another legacy site settings check.
Fix custom node’s URLs being blank.
Fix an error with Feed Me beta.
Fix icon alignment for node table rows.
Fix being unable to save non-element type nodes.
Fix lack of checking for node element in some places.
Fix an error when trying to create a navigation on a non-multi-site.
Removed
Removed NodeType::hasClasses() and NodeType::hasAttributes() which are now controlled by native fields.