Giter Club home page Giter Club logo

mu-nav-menu's Introduction

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.