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