Skip to content

WordPress must-use plugin to register a custom extended front-end menu walker and new wrapper function for BEM styled CSS classes.

License

Notifications You must be signed in to change notification settings

iantsch/mu-nav-menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

$ 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

$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 Adapt the automated sub menu query for $postType

Default post type archive arguments

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 Adapt the automated sub menu query for $taxonomy

Default term children arguments

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 - web developer behind this and other projects.

About

WordPress must-use plugin to register a custom extended front-end menu walker and new wrapper function for BEM styled CSS classes.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published