BuddyPress / Wordpress 获取动态用户 ID

Posted

技术标签:

【中文标题】BuddyPress / Wordpress 获取动态用户 ID【英文标题】:BuddyPress / Wordpress Get dynamic user ID 【发布时间】:2013-09-23 03:13:59 【问题描述】:

我正在尝试使用保存在用户元数据中的自定义 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?

【问题讨论】:

【参考方案1】:

我需要通用的东西

如果您查看您正在过滤的函数,您会发现它取决于知道您在 BP 中的“位置”。由于它是由上下文驱动的,因此没有通用的方法。

【讨论】:

【参考方案2】:

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

bp_displayed_user_id()

【讨论】:

以上是关于BuddyPress / Wordpress 获取动态用户 ID的主要内容,如果未能解决你的问题,请参考以下文章

WordPress/BuddyPress添加用户类型

PHP WordPress / BuddyPress添加用户类型

Sencha Touch 和 WordPress BuddyPress API 之间的 JSON 解析问题

PHP 在Wordpress MU和Buddypress上的地图上显示用户

wordpress buddypress 2.6.1.1 激活邮件修改

使用昵称或用户 ID 在 Buddypress 中更改用户配置文件 URL