BuddyPress / Wordpress获取动态用户ID

时间:2013-09-23 03:13:59

标签: wordpress buddypress userid avatars

我正在尝试使用保存在其用户元中的自定义网址来覆盖当前用户头像网址。到目前为止,函数正常工作除了我难以理解如何让函数获取用户的用户ID / wordpress正在获取头像。

到目前为止,代码如下所示:

// 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 个答案:

答案 0 :(得分:0)

  

我需要一些普遍适用的东西

如果你看一下你要过滤的功能,你会发现它取决于你知道你在BP的“哪里”。由于它是由上下文驱动的,因此没有通用的方法。

答案 1 :(得分:0)

您可以使用全局用户标识的以下功能:

bp_displayed_user_id()