Transmettre un paramètre à un menu

4

Existe-t-il un moyen de transmettre un paramètre à un programme de navigation? J'essaie d'écrire un marcheur de style BEM et j'aimerais pouvoir réussir un cours à appliquer aux liens de menu via le marcheur. Quelque chose comme:

<?php
wp_nav_menu(array(
    "container"      => false,
    "depth"          => 3,
    "items_wrap"     => "%3\$s",
    "theme_location" => "primary",
    "walker"         => new BEMwalker("mobile"),
));
?>
    
posée JacobTheDev 05.05.2016 - 23:56

1 réponse

5

Comme @toscho l'a dit, vous pouvez appeler la classe de marcheur avec les paramètres comme vous l'avez fait:

new BEMwalker( 'mobile' )

Le constructeur de BEMwalker prendra les arguments (comme toute autre fonction ou méthode en PHP) afin que vous puissiez accéder au (x) paramètre (s) via $this :

class BEMwalker extends Walker_Nav_Menu {

    private $classes;

    public function __construct( $classes = '' ) {
        $this->classes = $classes;
    }

    public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
       $output .= sprintf( "<li class=\"%s\"><a href=\"%s\">%s</a></li>",
            $this->classes,
            $item->url,
            $item->title
        );
    }

}

Lectures supplémentaires: Il existe également un référentiel GitHub appelé Menu BEM WordPress qui pourrait vous aider à mettre en œuvre un programme BEM. comme la syntaxe.

    
réponse donnée Sven 06.05.2016 - 15:26

Lire d'autres questions sur les étiquettes