Add custom menu item using wp_nav_menu_items filter

I’ve created these two functions you may use to add custom items to a given menu item present in your menu (page, post, link…). In your case, you can add these function to your functions.php and call them like this: $menu_name=”Your Menu Name”; $name_of_menu_item_to_append_to = ‘My Account’; $id_of_menu_item_to_append_to = get_wp_object_id( $name_of_menu_item_to_append_to, ‘nav_menu_item’ ); $new_submenu_item = … Read more

Add Javascript to WordPress Menu

Good that it works. If it’s for a client or if you just want a cleaner code, you can do it as @Tom J Nowell suggested. Add a custom menu item, link it to nowhere or anywhere. Find out the menu item ID (every item has one), and then target that ID with jQuery. $(“#menu-item-num”).on(“click”, … Read more

How Does The Walker Class Work?

I searched and read about the walker class. I ran tests, I played around with the code and I finally understood. I hope this can be helpful to others too. You’ll need to implement the walker class for this. Here is a simple example. $defaults = array( ‘theme_location’ => ‘primary’, ‘container’ => ‘ul’, ‘menu_class’ => … Read more

How to count nav menu items?

Call wp_get_nav_menu_object to get a menu object, which will give you the count of items for that menu. Example: // Get menu object $my_menu = wp_get_nav_menu_object( ‘your-menu-name-or-slug’ ); // Echo count of items in menu echo $my_menu->count; Hope that helps.

How to Add to Each Menu Link with link text to data-attr?

Solution 1: Using customize walker I got some idea from add span class inside wp_nav_menu link anchor tag and made some changes for your requirements. 1. Add this code below to your functions.php first. class Nav_Walker_Nav_Menu extends Walker_Nav_Menu{ function start_el(&$output, $item, $depth, $args){ global $wp_query; $indent = ( $depth ) ? str_repeat( “\t”, $depth ) … Read more

Get menu object from theme_location

This method looks like what you’re looking for, using get_nav_menu_locations() and get_term(): $theme_locations = get_nav_menu_locations(); $menu_obj = get_term( $theme_locations[$theme_location], ‘nav_menu’ ); $menu_name = $menu_obj->name; (See the link for the whole thing wrapped up in a custom function; the above code just highlights the relevant WP functions for getting what you’re after.)

How do I get the name of a menu in WordPress?

You can access the menu metadata using the wp_get_nav_menu_object function BY NAME: $menu = wp_get_nav_menu_object(“my mainmenu” ); BY SLUG: $menu = wp_get_nav_menu_object(“my-mainmenu” ); The return object as follows: Object ( term_id => 4 name => My Menu Name slug => my-menu-name term_group => 0 term_taxonomy_id => 4 taxonomy => nav_menu description => parent => 0 … Read more

Change the_title() of a page dynamically

I would use the is_page_template() conditional: if ( is_page_template( ‘page-courses.php’ ) ) { // The current page uses your // custom page template; // do something } Edit You would use this conditional inside your filter callback: function wpse83525_filter_the_title( $title ) { if ( is_page_template( ‘page-courses.php’ ) ) { return ‘Custom Title’; } return $title; … Read more

Mega Menu Walker

If I understand the problem setup correctly, you could try to do the break and widget class counting within the wp_nav_menu_objects filter. Here’s an updated example, it’s rather expanded because of the extra debug part: add_filter( ‘wp_nav_menu_objects’, function( $items, $args ) { // Only apply this for the ‘primary’ menu: if( ‘primary’ !== $args->theme_location ) … Read more