apply_filters( 'wp_nav_menu_items', string $items , stdClass $args )
Filters the HTML list content for navigation menus.
Description Description
See also See also
Parameters Parameters
- $items
-
(string) The HTML list content for the menu items.
- $args
-
(stdClass) An object containing wp_nav_menu() arguments.
Source Source
Changelog Changelog
| Version | Description |
|---|---|
| 3.0.0 | Introduced. |
User Contributed Notes User Contributed Notes
You must log in before being able to contribute a note or feedback.
Add HTML5 search form to a menu
Add this code to functions.php. You can completely modify the output, and style the form as you want.
Please, don’t forget to replace the theme_location !
For example, if the id of my menu was main-menu, I would write
if( $args->theme_location == 'main-menu' )Hope this will help.
function add_search_form($items, $args) { if( $args->theme_location == 'menu-1' ){ $items .= '<li class="menu-item">' . '<form role="search" method="get" class="search-form" action="'.home_url( '/' ).'">' . '<label>' . '<span class="screen-reader-text">' . _x( 'Search for:', 'label' ) . '</span>' . '<input type="search" class="search-field" placeholder="' . esc_attr_x( 'Search …', 'placeholder' ) . '" value="' . get_search_query() . '" name="s" title="' . esc_attr_x( 'Search for:', 'label' ) . '" />' . '</label>' . '<input type="submit" class="search-submit" value="'. esc_attr_x('Search', 'submit button') .'" />' . '</form>' . '</li>'; } return $items; } add_filter('wp_nav_menu_items', 'add_search_form', 10, 2);Expand full source codeCollapse full source code
Add extra menu item to a WordPress Nav Menu
Using this code snippet, one can add an additional menu item to the end of a WordPress navigation menu. For example, here in this case I am adding a WooCommerce Login/Register link when a user is not logged in, and a My Account page link when a user is logged in.
add_filter( 'wp_nav_menu_items', 'add_extra_item_to_nav_menu', 10, 2 ); function add_extra_item_to_nav_menu( $items, $args ) { if (is_user_logged_in() && $args->menu == 303) { $items .= '<li><a href="'. get_permalink( get_option('woocommerce_myaccount_page_id') ) .'">My Account</a></li>'; } elseif (!is_user_logged_in() && $args->menu == 303) { $items .= '<li><a href="' . get_permalink( wc_get_page_id( 'myaccount' ) ) . '">Sign in / Register</a></li>'; } return $items; }How to use the above code?
Hope this helps someone :)