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