如何在个人资料页面通过媒体上传器上传图片时获取个人资料用户ID

时间:2014-11-18 作者:benutzerfreund

我有一个插件,允许用户将图像上载到后端的用户配置文件。现在我想访问上传器中的用户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;
}

1 个回复
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;
}

结束

相关推荐

Register users by e-mail

我想使用电子邮件地址而不是用户名来注册和登录我的成员。我已经让登录部分使用中的一些代码工作this answer. 工作正常,但正如预期的那样,wordpress仍然希望在注册页面上有一个用户名(自定义,而不是默认)。这行代码注册用户:$user_signup = wp_insert_user( $user_data );, 注册时出现以下错误:无法创建登录名为空的用户。我猜这可以通过删除适当的过滤器来解决,但我对wordpress还不熟悉。删除用户名要求的代码是什么?