在 Buddypress 上设置一个 jpg 作为头像

Set a jpg as avatar on Buddypress

我正在使用 Wordpress、Buddypress 设置前端 ajax 配置文件编辑。我已经将图片上传到文件夹 wp-content/uploads/avatar/Idoftheuser 但之后我有点迷路了。

我一直在寻找文档,但其中大部分只是告诉我如何通过 de wp-admin 进行操作,我需要使用 php。

我在 buddypress 上发现他们如何在 bp-core-avatars.php 上处理作物:

$r = array(
    'item_id'       => $avatar_data['item_id'],
    'object'        => $avatar_data['object'],
    'avatar_dir'    => $avatar_dir,
    'original_file' => $original_file,
    'crop_w'        => $avatar_data['crop_w'],
    'crop_h'        => $avatar_data['crop_h'],
    'crop_x'        => $avatar_data['crop_x'],
    'crop_y'        => $avatar_data['crop_y']
);

// Handle crop.
if ( bp_core_avatar_handle_crop( $r ) ) {

问题是我不知道他们在哪里设置裁剪对象的用户,如果是新的未登录用户怎么办?

我不想使用 bp_core_avatar_handle_crop,只是将我已经上传的 jpg 指定为个人资料头像。

what if its a new unlogged user?

如何front-end 为未登录的用户编辑个人资料? 如果用户未登录,BP 不允许上传头像。 我认为有些插件允许在注册时上传头像,可能是在创建用户挂钩上。

如果您知道用户 ID,您可以上传到该用户的头像目录。 对于ID为8的用户,BP期望的结构是:

wp-content/uploads/avatar/8/8-bpfull.jpg
wp-content/uploads/avatar/8/8-bpthumb.jpg

您可以在注册时进行此操作,因为您需要用户ID 来设置头像。 使用 create user hook 创建用户后,您可以手动将图像上传到以下格式,例如 userid (22),

wp_content/uploads/avatars/22/22-bpfull.jpg (150x150px) 
wp_content/uploads/avatars/22/22-bpthumb.jpg (50x50px)

wp_content/uploads/avatars/22/anyname-bpfull.jpg 
wp_content/uploads/avatars/22/anyname-bpthumb.jpg

以下是示例代码,

function addMyCustomData($user_id,$meta) {
  //your stuff
}
add_action('user_register','addMyCustomData',10,2,);

希望对您有所帮助。