2013-09-23 6 views
0

Я пытаюсь сделать функцию, которая переопределяет URL-адрес аватара текущего пользователя с помощью настраиваемого URL-адреса, который сохраняется в их метателе пользователя. Пока функция работает, за исключением того, что я в тупик, пытаясь выяснить, как получить функцию, чтобы получить идентификатор пользователя пользователя buddypress/wordpress.BuddyPress/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?

ответ

0

мне нужно что-то, что работает универсально

Если посмотреть на функции вы фильтрации, вы увидите, что это зависит от того, зная, «где» вы находитесь в BP. Поскольку это обусловлено контекстом, универсального подхода не существует.

0

Вы можешь пользователь ниже functiona Глобального: идентификатор пользователя

bp_displayed_user_id() 
Смежные вопросы