1

My WP theme got these notice on description menu function

my code :

http://www49.zippyshare.com/v/89513423/file.html

/* Discription Navigation Menu, Credit to Christian Kriesi  */

class description_walker extends Walker_Nav_Menu

{

      function start_el(&$output, $item, $depth, $args)
      {
           global $wp_query;
           $indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';

           $class_names = $value = '';

           $classes = empty( $item->classes ) ? array() : (array) $item->classes;

           $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) );
           $class_names = ' class="'. esc_attr( $class_names ) . '"';

           $output .= $indent . '<li id="menu-item-'. $item->ID . '"' . $value . $class_names .'>';

           $attributes  = ! empty( $item->attr_title ) ? ' title="'  . esc_attr( $item->attr_title ) .'"' : '';
           $attributes .= ! empty( $item->target )     ? ' target="' . esc_attr( $item->target     ) .'"' : '';
           $attributes .= ! empty( $item->xfn )        ? ' rel="'    . esc_attr( $item->xfn        ) .'"' : '';
           $attributes .= ! empty( $item->url )        ? ' href="'   . esc_attr( $item->url        ) .'"' : '';

           $prepend = '<span>';
           $append = '</span>';
           $description  = ! empty( $item->description ) ? '<span class="nav-sec">'.esc_attr( $item->description ).'</span>' : '';

           if($depth != 0)
           {
                $description = $append = $prepend = "";
           }

            $item_output = $args->before;
            $item_output .= '<a'. $attributes .'>';
            $item_output .= $args->link_before .$prepend.apply_filters( 'the_title', $item->title, $item->ID ).$append;
            $item_output .= $description.$args->link_after;
            $item_output .= '</a>';
            $item_output .= $args->after;

            $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
            }
}

my wp_nav_menu :

  $header_menu_args = array(    
      'theme_location' => 'main_menu',                                
      'container_class' => 'menu',
      'container_id' => 'dropdown',
      'menu_id' => '', 
      'menu_class' => 'sf-menu',
      'echo' => true,
      'before' => '',
      'after' => '',
      'link_before' => '',
      'link_after' => '',
      'depth' => 0,
      'walker' => new description_walker()                                
  );
  wp_nav_menu( $header_menu_args );
  dropdown_menu( $header_menu_args );

the problem is in the line 44, 46, 47, 49 for the property of non object.

http://multipixels.net/files/theme_function_debug.png

please help me to figure it out please.

Best regards, Decneo

2
  • dropdown_menu() is not a valid function.
    – fuxia
    Jan 2, 2013 at 7:23
  • so I have remove dropdown_menu() ? the issue is $args
    – Decneo
    Jan 2, 2013 at 7:28

2 Answers 2

0

It looks like the $args passed to the function is not an object for some reason. I can't see the origin of this problem but for a quick solution, you can add $args = (object) $args; before the first time you use $args, here on line 44

Also, as commented by toscho, dropdown_menu() is not a valid function in wordpress core

6
  • so I have to put $args = (object) $args; before $item_output = $args->before; ... right? and remove dropdown_menu( $header_menu_args ); line?
    – Decneo
    Jan 2, 2013 at 8:20
  • that's correct. Jan 2, 2013 at 12:51
  • Thank you Mridul Aggarwal, I will do that like you said then will tell you what's happen, because on my side I didn't get this notices after using debug bar plugin. only on my reviewer side got this.so I have to sent the theme file to the reviewer and waiting for his response.
    – Decneo
    Jan 2, 2013 at 15:32
  • How can I do Mridul Aggarwal if the notice still show.
    – Decneo
    Jan 6, 2013 at 13:45
  • I think the notice might be due to some other code Jan 6, 2013 at 17:14
1

For those looking for the answer to this problem it is a bug and has been reported to the core trac.

The problem is being caused by a nav menu item. This item needs to be removed. Save your menu and the notice will go away.

Personally I rebuilt my entire menu.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.