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>\';