我有一个插件,允许用户将图像上载到后端的用户配置文件。现在我想访问上传器中的用户id,以更改上传图像的文件名。
在用户配置文件编辑页面上,我通过global $profileuser. 但当我在一个函数中访问它时,我添加了一个过滤器wp_handle_upload, $profileuser为空。
在这种情况下,如何获取配置文件用户(而不是登录用户)有什么想法吗?
这是我的代码:
add_filter(\'wp_handle_upload_prefilter\', \'my_pre_upload\', 2);
function my_pre_upload($file){
    // get current user
    global $profileuser;
    $myAuthorImg = get_userdata( $profileuser->ID );
    $myAuthorImg = \'author-\' . $myAuthorImg . \'.jpg";
    $file[\'name\'] = $myAuthorImg 
    return $file;
}
 
                SO网友:tao
                调用函数并相应定义它时,需要将$profileuser->ID作为第二个参数传递:
add_filter(\'wp_handle_upload_prefilter\', \'my_pre_upload\', 2, 2);
// (3rd param is priority, 4th is number of args)
// and pass the $userid as argument to your function
function my_pre_upload($file, $userid = false){
    // if no user specified, get $current_user
    $userid = $userid ?: get_current_user_id();
    $user = get_userdata( $userid );
    $myAuthorImg = \'author-\' . $user->ID . \'.jpg";
    $file[\'name\'] = $myAuthorImg 
    return $file;
}