Mon thème comporte trois 3 menus: deux qui sont des menus déroulants et un qui est différent. Je veux supprimer le div, la classe, etc. du menu qui est différent.
Par exemple: j'ai trois menus
Mon code actuel:
<div id="megaMenu" class="megaMenuContainer megaMenu-nojs megaFullWidth megaMenuHorizontal megaMenuOnHover wpmega-autoAlign wpmega-withjs wpmega-noconflict"><ul id="megaUber" class="megaMenu"><li id="menu-item-987" class="menu-item menu-item-type-post_type menu-item-object-post current-menu-item ss-nav-menu-item-0 ss-nav-menu-item-depth-0 ss-nav-menu-reg"><a href="http://localhost/wordpress/?p=967"><span class="wpmega-link-title">who we are</span></a></li>
<li id="menu-item-986" class="menu-item menu-item-type-post_type menu-item-object-post ss-nav-menu-item-1 ss-nav-menu-item-depth-0 ss-nav-menu-reg"><a href="http://localhost/wordpress/?p=969"><span class="wpmega-link-title">management team</span></a></li>
<li id="menu-item-985" class="menu-item menu-item-type-post_type menu-item-object-post ss-nav-menu-item-2 ss-nav-menu-item-depth-0 ss-nav-menu-reg"><a href="http://localhost/wordpress/?p=971"><span class="wpmega-link-title">award</span></a></li>
<li id="menu-item-984" class="menu-item menu-item-type-post_type menu-item-object-post ss-nav-menu-item-3 ss-nav-menu-item-depth-0 ss-nav-menu-reg"><a href="http://localhost/wordpress/?p=973"><span class="wpmega-link-title">career</span></a></li>
<li id="menu-item-983" class="menu-item menu-item-type-post_type menu-item-object-post ss-nav-menu-item-4 ss-nav-menu-item-depth-0 ss-nav-menu-reg"><a href="http://localhost/wordpress/?p=975"><span class="wpmega-link-title">contact us</span></a></li>
</ul></div>
Je veux tout supprimer de mon menu, je veux juste vouloir <li>menu name </li>
. De plus, je veux que la classe active
soit appliquée à l'élément de menu activé en tant que <li class="active">menu name </li>
.
Vous pouvez utiliser un autre lecteur que celui de pré-génération WordPress.
Ajoutez ceci à votre fichier functions.php dans le thème:
class Clean_Nav_Walker extends Walker {
var $tree_type = array( 'post_type', 'taxonomy', 'custom' );
var $db_fields = array( 'parent' => 'menu_item_parent', 'id' => 'db_id' );
function start_lvl(&$output, $depth) {
$indent = str_repeat("\t", $depth);
$output .= "\n$indent<ul class=\"sub-menu\">\n";
}
function end_lvl(&$output, $depth) {
$indent = str_repeat("\t", $depth);
$output .= "$indent</ul>\n";
}
function start_el(&$output, $item, $depth, $args) {
global $wp_query;
$indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
$class_names = $value = '';
$classes = empty( $item->classes ) ? array() : (array) $item->classes;
$classes = in_array( 'active', $classes ) ? array( 'active' ) : array();
$class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args ) );
$class_names = strlen( trim( $class_names ) ) > 0 ? ' class="' . esc_attr( $class_names ) . '"' : '';
$id = apply_filters( 'nav_menu_item_id', '', $item, $args );
$id = strlen( $id ) ? ' id="' . esc_attr( $id ) . '"' : '';
$output .= $indent . '<li' . $id . $value . $class_names .'>';
$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 ) .'"' : '';
$item_output = $args->before;
$item_output .= '<a'. $attributes .'>';
$item_output .= $args->link_before . apply_filters( 'the_title', $item->title, $item->ID ) . $args->link_after;
$item_output .= '</a>';
$item_output .= $args->after;
$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
}
function end_el(&$output, $item, $depth) {
$output .= "</li>\n";
}
}
Assurez-vous ensuite de spécifier le nouveau Walker personnalisé lorsque vous appelez wp_nav_menu()
.
<?php
$walker = new Clean_Nav_Walker();
$attr = array( 'theme_location' => 'quicklink', 'walker' => $walker);
wp_nav_menu( $attr );
?>