提问者:小点点

BuddyPress/Wordpress获取动态用户ID


我试图使一个函数覆盖当前用户的头像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吗?


共2个答案

匿名用户

我需要通用的东西

如果您查看正在筛选的函数,您会发现它取决于您在BP中的“位置”。因为它是由上下文驱动的,所以没有通用的方法。

匿名用户

您可以在下面的函数中使用全局用户ID:

bp_displayed_user_id()