1

我一直在努力寻找解决方案,我认为要么没有解决方案,要么我缺乏知识真的让我退缩了。简而言之,我在我的 Wordpress 网站上安装了 buddypress,我一直在使用简单的本地头像用户来管理他们的头像。由于我一直在使用它并在简单的本地化身插件中进行了一些自定义,我想看看是否可以用本地化身替换所有 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;
}

似乎(对我来说)它应该可以工作,但它没有,任何人都能够插话并告诉我如何删除 buddypress 化身并让它拉动本地化身?

谢谢阅读 :)

4

3 回答 3

1

当您使用 BuddyPress 时,您需要查看bp_core_fetch_avatar(). 安装 BP 时,它无处不在。在论坛中也是如此。

您应该使用它的过滤器,例如bp_core_fetch_avatarbp_core_fetch_avatar_url

于 2013-04-29T06:17:50.147 回答
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 >> 用您自己的图像更改所有行 '/images/customGravatar.png'

4 >> 现在允许用户上传自己的本地头像添加这个插件:Simple Local Avatars

该插件增加了用户将头像添加到配置文件 WORDPRESS // BUDDY PRESS 已经拥有自己的头像替换系统的能力;)

于 2014-09-10T15:30:32.413 回答
0

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

add_filter('bp_core_fetch_avatar_no_grav', '__return_true');

添加到 plugins/bp-custom.php

最初回答并更好地解释here..

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

于 2016-01-16T19:44:57.220 回答