我正在尝试创建一个函数,该函数使用保存在用户元数据中的自定义 URL 覆盖当前用户头像 URL。到目前为止,该功能有效,除了我很难弄清楚如何让该功能获取用户 buddypress/wordpress 的用户 ID 正在获取头像。
到目前为止的代码如下所示:
// return new URL for avatar
function wpse_49216_my_new_avatar_url() {
// get user_id of user bp/wp is getting avatar for
$user_id = bp_get_member_user_id();
// get avatar name from above user's meta
$avatar_choice = get_user_meta($user_id, "avatar_choice", true);
if($avatar_choice) {
return 'path_to_avatars/'.$avatar_choice.'.png';
} else {
return 'path_to_avatars/default-avatar.png';
}
}
add_filter( 'bp_core_fetch_avatar_url', 'wpse_49216_my_new_avatar_url' );
// Replace image src="" with the new avatar URL
function wpse_49216_filter_bp_avatar( $html ) {
return preg_replace( '/src=".+?"/', 'src="' . wpse_49216_my_new_avatar_url() . '"', $html );
}
add_filter( 'bp_core_fetch_avatar', 'wpse_49216_filter_bp_avatar' );
主要问题是如果我将 $user_id 设置为当前登录用户的 ID,那么所有头像都将加载当前登录用户的头像。并且bp_get_member_user_id()
仅适用于会员页面。我需要通用的东西。是否有任何Wordpress/Buddypress专家知道如何获得正确的用户 ID?