admin管理员组

文章数量:1335847

when we give $depth in argument of nav_menu_css_class it gives me argument error. Here is my code:

  add_filter( 'nav_menu_css_class' , 'eodwp_menu_item_class',10 ,3 );
  function eodwp_menu_item_class( $classes, $item, $args, $depth) {  
    print_r($depth);
     if ($depth == 0) {
      $classes= array('dropdown');
      print_r($classes);
  }
  else {
      $classes= array('dropdown-item');
  }
  return $classes;
  }

Fatal error: Uncaught ArgumentCountError: Too few arguments to function eodwp_menu_item_class(), 3 passed in C:\xampp\htdocs\akeo_template\wordpress\wp-includes\class-wp-hook.php on line 289 and exactly 4 expected in C:\xampp\htdocs\akeo_template\wordpress\wp-content\themes\Akeo-Tech\functions.php:27 Stack trace: #0 C:\xampp\htdocs\akeo_template\wordpress\wp-includes\class-wp-hook.php(289): eodwp_menu_item_class(Array, Object(WP_Post), Object(stdClass)) #1 C:\xampp\htdocs\akeo_template\wordpress\wp-includes\plugin.php(206): WP_Hook->apply_filters(Array, Array) #2 C:\xampp\htdocs\akeo_template\wordpress\wp-includes\class-walker-nav-menu.php(153): apply_filters('nav_menu_css_cl...', Array, Object(WP_Post), Object(stdClass), 0) #3 C:\xampp\htdocs\akeo_template\wordpress\wp-includes\class-wp-walker.php(144): Walker_Nav_Menu->start_el('', Object(WP_Post), 0, Object(stdClass)) #4 C:\xampp\htdocs\akeo_template\wordpress\wp-includes\class-wp-walker.php(244): Walker->display_element(Object(WP_Post), Array, 0, 0, Array, '') #5 C:\x in C:\xampp\htdocs\akeo_template\wordpress\wp-content\themes\Akeo-Tech\functions.php on line 27

when we give $depth in argument of nav_menu_css_class it gives me argument error. Here is my code:

  add_filter( 'nav_menu_css_class' , 'eodwp_menu_item_class',10 ,3 );
  function eodwp_menu_item_class( $classes, $item, $args, $depth) {  
    print_r($depth);
     if ($depth == 0) {
      $classes= array('dropdown');
      print_r($classes);
  }
  else {
      $classes= array('dropdown-item');
  }
  return $classes;
  }

Fatal error: Uncaught ArgumentCountError: Too few arguments to function eodwp_menu_item_class(), 3 passed in C:\xampp\htdocs\akeo_template\wordpress\wp-includes\class-wp-hook.php on line 289 and exactly 4 expected in C:\xampp\htdocs\akeo_template\wordpress\wp-content\themes\Akeo-Tech\functions.php:27 Stack trace: #0 C:\xampp\htdocs\akeo_template\wordpress\wp-includes\class-wp-hook.php(289): eodwp_menu_item_class(Array, Object(WP_Post), Object(stdClass)) #1 C:\xampp\htdocs\akeo_template\wordpress\wp-includes\plugin.php(206): WP_Hook->apply_filters(Array, Array) #2 C:\xampp\htdocs\akeo_template\wordpress\wp-includes\class-walker-nav-menu.php(153): apply_filters('nav_menu_css_cl...', Array, Object(WP_Post), Object(stdClass), 0) #3 C:\xampp\htdocs\akeo_template\wordpress\wp-includes\class-wp-walker.php(144): Walker_Nav_Menu->start_el('', Object(WP_Post), 0, Object(stdClass)) #4 C:\xampp\htdocs\akeo_template\wordpress\wp-includes\class-wp-walker.php(244): Walker->display_element(Object(WP_Post), Array, 0, 0, Array, '') #5 C:\x in C:\xampp\htdocs\akeo_template\wordpress\wp-content\themes\Akeo-Tech\functions.php on line 27

Share Improve this question edited May 28, 2020 at 4:38 Jacob Peattie 44.1k10 gold badges50 silver badges64 bronze badges asked May 28, 2020 at 3:45 Vidisha VaidVidisha Vaid 133 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 2

The number in the last argument to add_filter() needs to match the number of arguments accepted by the callback function. Your function now accepts 4 arguments:

function eodwp_menu_item_class( $classes, $item, $args, $depth) {

So that last number needs to be 4:

add_filter( 'nav_menu_css_class', 'eodwp_menu_item_class', 10, 4 );

本文标签: custom post typesArgumentCountError caused by wpincludesclasswphookphp