Nav walker

Par polack45, il y a 8 ans


Bonjour,

Voila je rencontre un petit problème avec mon code. Voici la structure de mon menu via mon code source et j'aimerai avoir le walker correspondant. Merci pour votre aide.

<nav class="navigation clearfix mobile-menu-wrapper">
<ul id="menu" class="menu">
<li id="menu-item-1" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1"><a class="page- scroll"href="page1.html">Page 1</a></li>
<li id="menu-item-2" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-2"><a class="page-scroll"href="page2.html">Page 2</a></li>
</ul>
</nav>

<?php
wp_nav_menu([
'menu_class' => 'nav-menu',
'theme_location' => 'nav',
'container' => false,
'items_wrap' => '%3$s',
'walker' => new MenuWalker()
]);
?>

Dans menuwalker.php

<?php

class MenuWalker extends Walker_Nav_Menu{

public function start_el(&$output, $item, $depth = 0, $args = [], $id = 0)
{

    global $wp_query;
    $queried_object_id = (int) $wp_query->queried_object_id;

    $attributes  = ! empty( $item->attr_title ) ? ' title="'  . esc_attr( $item->attr_title ) .'"' : '';
    $attributes .= ! empty( $item->target )     ? ' target="' . esc_attr( $item->target     ) .'"' : '';
    $attributes .= ! empty( $item->xfn )        ? ' rel="'    . esc_attr( $item->xfn        ) .'"' : '';
    $attributes .= ! empty( $item->url )        ? ' href="'   . esc_attr( $item->url        ) .'"' : '';

    if($queried_object_id == $item->object_id) {
        $attributes .= 'class="active"';
    }

    $item_output = '<a'. $attributes .'>';
    $item_output .= apply_filters( 'the_title', $item->title, $item->ID );
    $item_output .= '</a>';

    $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
}

public function end_el(&$output, $item, $depth=0, $args=[])
{
    $output .= "";
}

}

Entourez votre code pour bien le mettre en forme

Ce que je veux

Décrivez ici ce que vous cherchez à obtenir

Ce que j'obtiens

Décrivez ici vos erreurs ou ce que vous obtenez à la place de ce que vous attendez :(

Aucune réponse