提问者:小点点

用简单的本地头像替换BuddyPress头像


我一直在努力寻找解决方案,我想要么没有,要么我缺乏知识,这真的阻碍了我...简而言之,我已经在我的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的头像并让它拉本地的头像吗?

感谢阅读:)


共3个答案

匿名用户

当您使用BuddyPress时,您需要查看bp_core_fetch_avatar()。当英国石油公司安装时,它无处不在。在论坛上也是如此。

你应该使用它的过滤器,比如bp\u core\u fetch\u avatarbp\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