---
title: "Fonctions utiles pour vos menus WordPress"
id: "291371"
type: "post"
slug: "fonctions-menu-nav-wordpress"
published_at: "2020-12-17T15:14:20+00:00"
modified_at: "2020-12-17T15:14:56+00:00"
url: "https://www.mistersize.com/blog/fonctions-menu-nav-wordpress/"
markdown_url: "https://www.mistersize.com/blog/fonctions-menu-nav-wordpress.md"
excerpt: "Ces fonctions vont vous permettre de retravailler vos menus de navigation WordPress grâce à la modification des filtres prévus à cet effet : wp_nav_menu_items et le filtre nav_menu_link_attributes."
taxonomy_category:
  - "Blog"
taxonomy_post_tag:
  - "Snippet"
  - "WordPress"
---

[j'aime](#partage)
[Commenter](#comments-list)
Taggué dans : [Snippet](https://www.mistersize.com/tag/snippet/)
, [WordPress](https://www.mistersize.com/tag/wordpress/)

Ces fonctions vont vous permettre de retravailler vos menus de navigation WordPress grâce à la modification des filtres prévus à cet effet : **wp_nav_menu_items** et le filtre **nav_menu_link_attributes**.

## Ajouter le formulaire de recherche au menu de navigation WordPress

```
add_filter('wp_nav_menu_items', 'wp578_add_search_form_in_nav_menu', 10, 2);
function wp578_add_search_form_in_nav_menu($items, $args) {

	// Si le nom de votre menu est "meu-1" (modifiez par le votre) : 
	if( $args->theme_location == 'menu-1' ){
	        $items .= '<li class="menu-item_search">' . get_search_form() . '</li>';
	        return $items;
	}
}
```

## Ajouter une class à chaque lien d’un menu de navigation WordPress

```
add_filter( 'nav_menu_link_attributes', 'wp578_add_specific_menu_location_class', 10, 3 );
function wp578_add_specific_menu_location_class( $atts, $item, $args ) {

	// Si le nom de votre menu est "meu-1" (modifiez par le votre) : 
    if( $args->theme_location == 'menu-1' ) {

    	$source 	= $atts['href'];
    	$search 	= get_bloginfo('url');
    	$replace 	= '';

    	// Rechercher Remplacer
    	$category_slug = str_replace($search, $replace, $source);

    	// Sanitization :
      	$atts['class'] = 'menu-item-link_' . sanitize_title($category_slug);
    }
    return $atts;
}
```
