用简单的本地头像替换Buddypress Avatars

时间:2013-04-28 22:59:50

标签: buddypress avatars

我一直在努力找到一个解决方案而且我在想,或者没有一个或者我缺乏知识真的把我抱回来。总之我在我的Wordpress网站上安装了buddypress并且我一直在使用Simple用户管理其头像的本地头像。由于我一直在使用它,并在简单的本地头像插件中添加了一些自定义,我想看看我是否可以用本地头像替换所有的buddypress头像。

简而言之,我的研究告诉我:Buddypress使用bb_get_avatar函数来显示和管理它的头像,但是本地头像插件使用了get_avatar函数,所以拔掉我的头发后,喝咖啡然后回去开始拉开什么都没有,我在我的functions.php文件中提出了下面的代码片段。这似乎是合乎逻辑但不起作用,这可能是由于我的新手,但嘿,我试试..

这就是我在functions.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;
}

似乎(对我来说)它应该可以工作,但它没有,任何人都可以插入并告诉我如何删除这些假名头像并让它拉动当地的头像?

感谢阅读:)

3 个答案:

答案 0 :(得分:1)

当您使用BuddyPress时,您需要查看bp_core_fetch_avatar()。 BP安装时随处可见。在论坛中也是如此。

您应该使用filters,例如bp_core_fetch_avatarbp_core_fetch_avatar_url

答案 1 :(得分:0)

有最终解决方案:

1>>在wordpress设置中将头像设置为“空”'或者没有'没有' (对不起,我有一个法语版的wordpress)

2>>把那段代码放在你的function.php

// 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&gt;&gt;改变所有行&#39; /images/customGravatar.png'用你自己的形象

4&gt;&gt;现在允许用户上传自己的本地头像添加此插件:Simple Local Avatars

该插件添加了用户添加头像的能力,其中profil WORDPRESS // BUDDY PRESS已经拥有了他自己的头像替换系统;)

答案 2 :(得分:0)

一种可能的,更简单的解决方案..

add_filter('bp_core_fetch_avatar_no_grav', '__return_true');

添加到plugins / bp-custom.php

最初回答并在这里解释得更好..

https://stackoverflow.com/a/34560419/3377049