更改默认的BuddyPress头像会影响所有站点头像(因为Gravata)

时间:2018-03-25 作者:Haazna

我一直在寻找一种方法来更改成员的默认Buddypress头像,并对其进行了管理,部分只是使用简单的Buddypress codex信息here.

但是

食品法典信息并没有起到很好的作用。Gravatar似乎覆盖了它,所以codex代码工作的唯一方式是首先禁用Gravatar。

我现在面临的问题是,在为buddypress禁用gravatar时,它会在整个网站上禁用它,因此普通wordpress用户(比如管理员/编辑)无法通过wordpress的后端用户配置文件空间编辑他们的头像,因为它是设置好的,所以你可以“在gravatar上更改你的配置文件图片”

但是

所有用户都可以进入他们的buddypress帐户页面(无论我们如何注册,只要我们在站点上有一个用户帐户,我们都会自动拥有该页面),并且他们可以在那里更改他们的头像,这会影响整个站点。

一切都还可以,但不完全正确。

所以我想知道是否有人有一个解决方案可以让我设置一个新的默认buddypress头像,而不必完全禁用gravatar。

这是bp自定义中的代码。php文件:

<?php

// disable gravatar  
add_filter( \'bp_core_fetch_avatar_no_grav\', \'__return_true\' );

//change Buddypress default avatar
define ( \'BP_AVATAR_DEFAULT\', \'http://localhost/mysite/wp- 
content/uploads/2017/08/profilpic.png\' );
define ( \'BP_AVATAR_DEFAULT_THUMB\', \'http://localhost/mysite/wp- 
content/uploads/2017/08/profilpic.png\' );

?>

1 个回复
SO网友:Haazna

好的,所以我想我找到了一个解决方案,并想发表文章,以防这对其他人来说是一个问题。

我决定放弃通过buddypress创建自定义默认头像的尝试,这意味着我不再谈论使用bp自定义。php文件。

相反,我选择在wordpress后端中使用我的子主题的函数文件创建一个自定义gravatar选项。

我尝试了几个不同的代码版本,但最终我坚持使用以下代码:

add_filter( \'avatar_defaults\', \'wpb_new_gravatar\' );
function wpb_new_gravatar ($avatar_defaults) {
$myavatar = \'http://example.com/wp-content/uploads/2017/01/wpb-default- 
gravatar.png\';
$avatar_defaults[$myavatar] = "Default Gravatar";
return $avatar_defaults;
} 
将上述代码添加到主题功能文件中,并用所有wordpress用户所需的默认gravatar/avatar图像替换虚拟图像地址。

然后转到wordpress管理区域中的设置>讨论。

您应该在头像图像列表的底部看到您的自定义头像图像。

选择该选项作为默认值,然后保存。

现在,该图像将是所有站点用户(包括buddypress)的默认图像,但仍然允许用户通过buddypress或通过gravatar通过wordpress管理区域上传自己的图像。

结束