我一直在努力寻找解决方案,我想要么没有,要么我缺乏知识,这真的阻碍了我...简而言之,我已经在我的Wordpress网站上安装了Buddypress,我一直在使用简单的本地头像来管理用户的头像。因为我一直在使用这个,并有一些自定义放入简单的本地头像插件,我想看看我是否可以用本地头像替换所有的Buddypress头像。
简言之,我的研究让我明白了这一点:Buddypress使用bb_get_avatar功能来显示和管理它的化身,然而本地的avatars插件使用get_avatar功能,所以在拔完头发、喝咖啡、回来后,我就开始一无所获了,我在我的功能中找到了下面的片段。php文件。这似乎合乎逻辑,但不起作用,这可能是由于我的新手,但嘿,我尝试。。
这就是我在函数中所做的。php:
//try the avatar thing
function socilize_custom_avatars() {
global $bb_current_user;
global $current_user;
get_currentuserinfo();
$avatar = bb_get_avatar( $bb_current_user->ID );
unset($avatar);
$avatar = get_avatar($current_user->ID);
return $avatar;
}
似乎(对我来说)它应该能工作,但它不能,有人能插话告诉我如何删除buddypress的头像并让它拉本地的头像吗?
感谢阅读:)
当您使用BuddyPress时,您需要查看bp_core_fetch_avatar()
。当英国石油公司安装时,它无处不在。在论坛上也是如此。
你应该使用它的过滤器,比如bp\u core\u fetch\u avatar
和bp\u core\u fetch\u avatar\u url
。
最终的解决办法是:
1.
2.
// Kill gravatar
function bp_remove_gravatar ($image, $params, $item_id, $avatar_dir, $css_id, $html_width, $html_height, $avatar_folder_url, $avatar_folder_dir) {
$default = get_stylesheet_directory_uri() .'/images/customGravatar.png';
if( $image && strpos( $image, "gravatar.com" ) ){
return '<img src="' . $default . '" alt="avatar" class="avatar" ' . $html_width . $html_height . ' />';
} else {
return $image;
}
}
add_filter('bp_core_fetch_avatar', 'bp_remove_gravatar', 1, 9 );
function remove_gravatar ($avatar, $id_or_email, $size, $default, $alt) {
$default = get_stylesheet_directory_uri() .'/images/customGravatar.png';
return "<img alt='{$alt}' src='{$default}' class='avatar avatar-{$size} photo avatar-default' height='{$size}' width='{$size}' />";
}
add_filter('get_avatar', 'remove_gravatar', 1, 5);
function bp_remove_signup_gravatar ($image) {
$default = get_stylesheet_directory_uri() .'/images/customGravatar.png';
if( $image && strpos( $image, "gravatar.com" ) ){
return '<img src="' . $default . '" alt="avatar" class="avatar" width="auto" height="auto" />';
} else {
return $image;
}
}
add_filter('bp_get_signup_avatar', 'bp_remove_signup_gravatar', 1, 1 );
3个
4.
该插件增加了用户添加头像的能力,以防止WORDPRESS//BUDDY PRESS已经有了自己的头像替换系统;)
一个可能的,更简单的解决方案...
add_filter('bp_core_fetch_avatar_no_grav', '__return_true');
添加到插件/bp自定义。php
最初的回答和更好的解释在这里。。
https://stackoverflow.com/a/34560419/3377049