J'utilise wp_nav_menu dans Wordpress pour créer ma navigation
La sortie est similaire à celle-ci (j'ai supprimé les liens href)
<nav id="pageNav">
<ul id="menu-headernav" class="menu">
<li><a href="">Home</a></li>
<li><a href="">About</a></li>
<li><a href="">Services</a></li>
<li><a href="">Work</a></li>
<li><a href="">Contact</a></li>
</ul>
</nav>
J'ai besoin de dénommer chaque lien séparément.
Comment puis-je ajouter un identifiant à chacun (li) ou (a) dans le menu afin que je puisse le styler.
On dirait que vous devez utiliser un Custom Walker Function
J'ai trouvé du code sur le Wordpress Suport Forums qui pourrait être utile:
Walker Class - Pastebin
class custom_nav_walker extends Walker_Nav_Menu {
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[] = 'menu-item-' . $item->ID;
$class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args ) );
$class_names = ' class="' . esc_attr( $class_names ) . '"';
$id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $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 );
}
/**
* @see Walker::end_el()
* @since 3.0.0
*
* @param string $output Passed by reference. Used to append additional content.
* @param object $item Page data object. Not used.
* @param int $depth Depth of page. Not Used.
*/
function end_el(&$output, $item, $depth) {
$output .= "</li>\n";
}
}
Source de la discussion - WP Assistance
Sortie:
<ul>
<li id="nav-item-1">
<a href="link-1">
</a>
</li>
<li id="nav-item-2">
<a href="link-2">
</a>
<ul class="sub-menu">
<li id="sub-item-1">
<a href="sub-link-1">
</a>
<li id="sub-item-2">
<a href="sub-link-2">
</a>
</ul>
</li>
</ul>