SO网友:Frank P. Walentynowicz
代码中的回调函数名称不匹配。我相信,这只是一个拼写错误。
要了解问题的本质,我们必须知道walker-nav-menu
在遍历菜单树时使用其参数。$args
适用于entire menu tree. $item
是一个单独的菜单项。
中参数的任何更改$args
通过过滤器生成的对象对于walker-nav-menu
. 您的代码应为:
add_filter( \'nav_menu_item_args\', \'nav_menu_modify_dropdown\', 10, 2 );
function nav_menu_modify_dropdown( $args, $item ) {
unset( $args->link_after );
if ( $args->theme_location === \'primary-menu\' && in_array( \'menu-item-has-children\', $item->classes, true ) )
$args->link_after = \'<span></span>\';
return $args;
}
如果只有一个菜单位置,可以简化条件语句:
if ( in_array( \'menu-item-has-children\', $item->classes, true ) )
$args->link_after = \'<span></span>\';