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的主要内容,如果未能解决你的问题,请参考以下文章
PHP WordPress / BuddyPress添加用户类型
Sencha Touch 和 WordPress BuddyPress API 之间的 JSON 解析问题
PHP 在Wordpress MU和Buddypress上的地图上显示用户