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;
}
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 badgesFatal 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
1 Answer
Reset to default 2The 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 );