Home » Hooks » wp_nav_menu

The wp_nav_menu hook is an important WordPress hook that allows developers to modify the navigation menus that are created using the wp_nav_menu() function. This hook is used to add or remove menu items, modify the HTML structure of the menu, or apply custom styling to the menu.

When the wp_nav_menu hook is triggered, it passes two parameters: the menu HTML output and an array of arguments used to generate the menu. Developers can use these parameters to modify the menu as per their requirements.

The wp_nav_menu hook is commonly used to enhance the functionality and appearance of navigation menus in WordPress themes. It provides developers with the flexibility to customize menus based on specific conditions or add additional functionality to the menu.

Here’s an example usage of the wp_nav_menu hook:

function custom_nav_menu($nav_menu, $args) {
    // Modify the menu HTML
    $modified_menu = str_replace('Menu item 1', 'Modified item 1', $nav_menu);

    // Add a new menu item
    $modified_menu .= '<li><a href="#">New Menu Item</a></li>';

    // Return the modified menu
    return $modified_menu;
add_filter('wp_nav_menu', 'custom_nav_menu', 10, 2);

In this example, the custom_nav_menu function is hooked to the wp_nav_menu hook using the add_filter function. It receives the menu HTML output and arguments as parameters. Inside the function, we can modify the menu by replacing a specific menu item with a modified version and adding a new menu item. Finally, the modified menu is returned.

By using the wp_nav_menu hook, developers can easily customize the appearance and functionality of navigation menus, providing a more personalized experience for website visitors.

Learn More on WordPress.org

Register an account to save your snippets or go Pro to get more features.