municipio / wp-plugin-modularity-navigation
Navigation modules for modern Municipio installations.
Package info
github.com/municipio-se/wp-plugin-modularity-navigation
Type:wordpress-plugin
pkg:composer/municipio/wp-plugin-modularity-navigation
Requires
- php: ^8.2
- composer/installers: ^2.3
Requires (Dev)
- carthage-software/mago: ^1.0.0-rc.3
- phpunit/phpunit: ^11.5
This package is auto-updated.
Last update: 2026-08-21 07:35:01 UTC
README
Modularity Navigation ports focused navigation-module capabilities from Municipio LTS to modern Municipio without restoring Municipio Extended as a compatibility layer.
Supported combinations
- Existing
mod-navigationposts remain the source of truth. - Existing
mod_navigation_format,mod_navigation_source,mod_navigation_menu,mod_navigation_items,mod_navigation_show_if_empty, andmod_navigation_empty_messagemetadata is reused. - Formats
grid,buttons, andlistcan each render sourcesmenu,manual, andchildren. - Menu sources render only top-level items. Manual sources retain their saved order, links, targets, icons, and button variants.
- Child-page sources resolve the current Municipio page and retain WordPress
menu_orderwhile excluding unpublished pages and pages hidden from menus. - The legacy theme mod
mod_navigation_grid_style=blocksis reused and exposed under Municipios existing component-appearance panel. - Button output uses Municipios current Button and Icon components. List output uses the current Link and Icon components inside semantic unordered-list markup.
Other LTS formats and sources are intentionally outside this release. Their values remain in the database but render no output until separately ported.
Installation
Install municipio/wp-plugin-modularity-navigation with Composer. Composer
Installers places it in wp-content/plugins/modularity-navigation through
extra.installer-name.
The plugin supports modern Municipio only and requires its bundled Modularity implementation.
Data migration
No write migration runs. The plugin keeps the LTS post type, field names, repeater shape, menu slug, and theme-mod key intact, so imported content remains editable and repeat activation is idempotent by design.
Grid presentation extension
The package-owned navigation-grid Blade view remains the default. A site
plugin can provide a focused grid presentation without replacing the complete
Navigation module by registering its view root through
/Modularity/externalViewPath and returning a plain Blade view name from:
add_filter( 'MunicipioModularityNavigation/gridPresentationView', static fn(): string => 'site-navigation-grid', );
The filter also receives the module ID, normalized items, and current grid style
as its second through fourth arguments. The selected view receives Navigation's
normalized module data. Invalid or missing override views safely fall back to
navigation-grid; buttons, list, inline, bar, module title, and empty-state
rendering never use the override.
Site presentations can set --mod-navigation-grid-link-padding and
--mod-navigation-grid-focus-color on their own grid wrapper or items. Both
variables fall back to the package's existing spacing and primary focus color,
so the shared presentation is unchanged.
Development
composer format composer test composer lint