https://github.com/iantsch/mu-nav-menu
WordPress must-use plugin to register a custom extended front-end menu walker and new wrapper function for BEM styled CSS classes.
https://github.com/iantsch/mu-nav-menu
wordpress wordpress-mu-plugin wordpress-nav-menu-walker
Last synced: 2 months ago
JSON representation
WordPress must-use plugin to register a custom extended front-end menu walker and new wrapper function for BEM styled CSS classes.
- Host: GitHub
- URL: https://github.com/iantsch/mu-nav-menu
- Owner: iantsch
- License: mit
- Created: 2017-05-02T20:19:53.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2018-10-30T11:57:40.000Z (over 7 years ago)
- Last Synced: 2025-07-30T06:40:20.522Z (11 months ago)
- Topics: wordpress, wordpress-mu-plugin, wordpress-nav-menu-walker
- Language: PHP
- Size: 10.7 KB
- Stars: 3
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# WordPress Menu Walker with BEM classes
WordPress must-use plugin to register a custom extended front-end menu walker and new wrapper function for BEM styled CSS classes.
## Installation
You can install this must-use plugin two ways
### Via Composer
If you load your dependenies via Composer you can load this plugin with
```sh
$ php composer require iantsch/mu-nav-menu
```
### Via Download
Download/fork this repository and copy the contents of this must-use plugin into `wp-content/mu-plugins/`.
If you visit your Plugin section in the `wp-admin` area, you should be able to see a newly created category (Must use) plugins
## Usage
A ready-to-use wrapper function `bem_nav_menu` for `wp_nav_menu` is included
```php
$args = array(
'base_class' => 'main-menu', // Optional. Default: menu
'theme_location' => 'main-menu'
);
bem_nav_menu($args);
```
You have an additional argument to name your block to your convenience with the argument `base_class`.
## Filter Hooks
Yes, you can easily adapt the functionality of this walker with the already known filter hooks and a few custom ones.
### MBT/WalkerNavMenu/renderToggle - string $title
| Parameter | Default | Functionality |
| --- | --- | --- |
| `boolean $render` | true | Enables the rendering of an no-JS toggle with radioboxes |
### MBT/WalkerNavMenu/menuToggleTitle
| Parameter | Default | Functionality |
| --- | --- | --- |
| `string $title` | title attribute for toggle anchor | To localize this string add a filter. |
### MBT/WalkerNavMenu/menuToggleContent
| Parameter | Default | Functionality |
| --- | --- | --- |
| `string $content` | string of a caret SVG | An additional toggle item for nested menus. |
### MBT/WalkerNavMenu/autoArchiveMenu
| Parameter | Default | Functionality |
| --- | --- | --- |
| `boolean $render, int $depth, object $item` | false | Enables an automated post type archive sub menu |
### MBT/WalkerNavMenu/autoTaxonomyMenu
| Parameter | Default | Functionality |
| --- | --- | --- |
| `boolean $render, int $depth, object $item` | false | Enables an automated posts per term of taxonomy sub menu |
### MBT/WalkerNavMenu/PostTypeArchive/queryArgs/postType={$postType}
| Parameter | Default | Functionality |
| --- | --- | --- |
| `array $query_args` | [see below](#default-post-type-archive-arguments) | Adapt the automated sub menu query for $postType |
#### Default post type archive arguments
```php
array(
'post_type' => $item->object,
'posts_per_page' => -1,
'post_parent' => 0,
)
```
### MBT/WalkerNavMenu/TermChildren/queryArgs/taxonomy={$taxonomy}
| Parameter | Default | Functionality |
| --- | --- | --- |
| `array $query_args` | [see below](#default-term-children-arguments) | Adapt the automated sub menu query for $taxonomy |
#### Default term children arguments
```php
array(
'post_type' => $taxonomy->object_type,
'posts_per_page' => -1,
'post_parent' => 0,
'tax_query' => array(
array(
'taxonomy' => $item->object,
'field' => 'id',
'terms' => $item->object_id
)
)
)
```
### MBT/WalkerNavMenu/mobileMenuContent
| Parameter | Default | Functionality |
| --- | --- | --- |
| `string $content` | string of html for the mobile toggle | An additional toggle item for mobile menus (burger). |
## Credits
[@iantsch](https://twitter.com/iantsch) - [web developer](https://mbt.wien) behind this and other projects.