Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

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

share|improve this question
    
dropdown_menu() is not a valid function. –  toscho Jan 2 '13 at 7:23
    
so I have remove dropdown_menu() ? the issue is $args –  Decneo Jan 2 '13 at 7:28

2 Answers 2

up vote 0 down vote accepted

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

share|improve this answer
    
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 '13 at 8:20
    
that's correct. –  Mridul Aggarwal Jan 2 '13 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 '13 at 15:32
    
How can I do Mridul Aggarwal if the notice still show. –  Decneo Jan 6 '13 at 13:45
    
I think the notice might be due to some other code –  Mridul Aggarwal Jan 6 '13 at 17:14

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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