id summary reporter owner description type status priority milestone component version severity resolution keywords cc focuses 37136 'nav_menu_link_attributes' filter is called with $args as an object instead of an array Fab1en "When I register the `nav_menu_link_attributes` filter, the third argument `$args` is an object. But [http://codex.wordpress.org/Plugin_API/Filter_Reference/nav_menu_link_attributes the documentation] says it should be an array. $atts - HTML attributes in an associative array $item - Object containing item details. E.G: If the link is to a page $item will be a WP_Post object $args - Array containing config with desired markup of nav item You can see later on [http://codex.wordpress.org/Plugin_API/Filter_Reference/nav_menu_link_attributes#Examples the same documentation page] that `$args` is an object : {{{ function add_specific_menu_location_atts( $atts, $item, $args ) { // check if the item is in the primary menu if( $args->theme_location == 'primary' ) { // add the desired attributes: $atts['class'] = 'menu-link-class'; } return $atts; } add_filter( 'nav_menu_link_attributes', 'add_specific_menu_location_atts', 10, 3 ); }}} Notice the `$args->theme_location` instead of `$args['theme_location']`. That inconsistency would not bother me if I was not providing a fallback function for `wp_nav_menu`. In the fallback function, I call `walk_page_tree`, which in turn calls the `nav_menu_link_attributes` filter, but with `$args` set as an array. {{{ wp_nav_menu( array( 'theme_location' => 'main', 'fallback_cb' => 'my_default_menu' ) ); function my_default_menu( $args = array() ) { // get all published posts $list_args = $args; $list_args['echo'] = false; $list_args['walker'] = new Walker_Nav_Menu; $posts = get_posts( array( 'nopaging' => true ) ); // generate menu HTML $menu = walk_page_tree( $posts, 0, 0, $list_args ); if ( $args['echo'] ) echo $menu; else return $menu; } }}} I cannot trace down where the array to object conversion is done. " defect (bug) closed normal Menus 4.3.1 normal duplicate dev-feedback docs, template