Cravatar 开发者文档
初认头像 Cravatar|API、SDK、各语言图像请求与平台集成(Developer docs & API)
- Favicon API 文档
- Go 语言图像请求
- 与 Gogs 集成
- 为 Emlog 集成
- Django 图像请求
- Ruby 图像请求
- Perl 图像请求
- Python 图像请求
- Java 图像请求
- PHP 图像请求
- 创建哈希值(Hash)
- 为 Drupal 集成
- 为 Joomla 集成
- Cravatar 官方 SDK(PHP 版本)
- Cravatar 开发库,插件,手机应用程序等…
- 为 Typecho 集成
- Cravatar 官方 API 文档
- 为 WordPress 集成
- Cravatar 开发指南
Favicon API 文档
API 概述
该 API 服务用于获取网站的 favicon 图标。不仅限于 WordPress 站点,它会自动检测并返回目标网站的 favicon 图标。如果无法获取到目标网站的 favicon,将返回默认图标。
API 端点
https://cn.cravatar.com/favicon/api/index.php
请求参数
| 参数名 | 类型 | 必填 | 描述 |
|---|---|---|---|
| url | string | 是 | 目标网站的 URL |
| refresh | boolean | 否 | 是否强制刷新缓存 |
使用示例

基础用法
https://cn.cravatar.com/favicon/api/index.php?url=cravatar.com
强制刷新缓存
https://cn.cravatar.com/favicon/api/index.php?url=cravatar.com&refresh=1
备用域名
- cn.cravatar.com (仅国内加速)
- cn.cravatar.com (国内+国际)
- en.cravatar.com (仅海外加速)

响应说明
- 响应格式:图片文件(image/x-icon 或 image/svg+xml)
- 如果成功获取到 favicon,将直接返回图标文件
- 如果获取失败,将返回默认图标
缓存机制
- API 默认会缓存获取到的 favicon
- 使用
refresh=1参数可以强制刷新缓存
使用示例代码
HTML 中使用
<link rel="icon" href="https://cn.cravatar.com/favicon/api/index.php?url=cravatar.com">
Markdown 中使用

注意事项
- 请确保提供的 URL 是有效的网址
- API 支持 HTTP 和 HTTPS 协议的网站
- 建议使用完整的域名,例如使用
example.com而不是www.example.com - API 有默认超时设置,如果目标网站响应较慢可能会返回默认图标
错误处理
- 如果提供的 URL 无效,将返回 404 状态码
- 如果无法获取目标网站的 favicon,将返回默认图标
- 如果目标网站返回非 200 状态码,将返回默认图标
示例响应头
成功获取并命中缓存时:
Content-Type: image/x-icon
X-Icon-Cache: Hit
使用限制
- 建议合理使用刷新缓存功能,避免频繁请求
- 请遵守合理的请求频率,避免对服务器造成过大压力
支持格式
- ICO
- PNG
- SVG
- JPG
Go 语言图像请求
与自有程序集成页面希望增加 Golang 语言的案例,来自
@okatu-loli ,Go 实现 Cravatar 示例如下,可供参考。
package main
import (
"crypto/md5"
"encoding/hex"
"fmt"
"net/url"
"strings"
)
// GetCravatar 返回指定电子邮件地址的 Cravatar URL 或完整的图像标签
func GetCravatar(email string, size int, defaultImage, rating string, imgTag bool, attrs map[string]string) string {
// 构建基本的 Cravatar URL
baseURL := "https://cn.cravatar.com/avatar/"
// 清理并对电子邮件地址进行 MD5 哈希处理
email = strings.TrimSpace(strings.ToLower(email))
hash := md5.New()
hash.Write([]byte(email))
emailHash := hex.EncodeToString(hash.Sum(nil))
// 构建 Cravatar URL
cravURL := fmt.Sprintf("%s%s?s=%d&d=%s&r=%s", baseURL, emailHash, size, defaultImage, rating)
// 如果 imgTag 为 true,则返回完整的 <img> 标签
if imgTag {
imgTagStr := fmt.Sprintf(`<img src="%s"`, cravURL)
for key, value := range attrs {
imgTagStr += fmt.Sprintf(` %s="%s"`, key, value)
}
imgTagStr += " />"
return imgTagStr
}
// 否则,仅返回 URL
return cravURL
}
func main() {
email := "someone@somewhere.com"
size := 40
defaultImage := "https://www.somewhere.com/homestar.jpg"
rating := "g"
imgTag := true
attrs := map[string]string{"class": "avatar", "alt": "User Avatar"}
// 获取 Cravatar 图像 URL 或 img 标签
result := GetCravatar(email, size, defaultImage, rating, imgTag, attrs)
fmt.Println(result)
}
论坛原贴:https://cravatar.com/forums/topic/24944/
与 Gogs 集成
在conf/app.ini里面[picture]下面加个配置:
GRAVATAR_SOURCE = https://cn.cravatar.com/avatar/
附:按gogs的官方文档,个人自定义配置应该创建custom/conf/app.ini文件,并用这个文件里的配置项来覆盖conf/app.ini的配置。
但不知道是不是我的版本问题,我试了没用,只有在conf/app.ini里面修改才有用。
参考资料:gogs app.ini文件配置项说明
| 名称 | 描述 |
|---|---|
| AVATAR_UPLOAD_PATH | 存放用户上传头像的目录 |
| GRAVATAR_SOURCE | 可以是 gravatar、duoshuo 或任何 URL,例如:http://cn.gravatar.com/avatar/ |
| DISABLE_GRAVATAR | 激活该选项来仅使用本地头像 |
| ENABLE_FEDERATED_AVATAR | 激活该选项来启用 Federated 头像服务(http://www.libravatar.org),当Gravatar 被禁用时此选项无法生效 |
此方法来自 知乎作者:李境界
为 Emlog 集成
目前 emlog 官方最新版已支持 Cravatar 头像,如果是旧版本等情况可以尝试通过以下方式手动集成。
<script>
const avaUrl = 'https://cn.cravatar.com/avatar/'
function alterAva(docName){
for(let index = 0; index < $(docName).length; index++){
let t_patt1 = new RegExp("[0-9a-z]{20,}");
let t_grasrc = $(docName + ":eq("+ index +")").attr("src")
let t_result = avaUrl + t_patt1.exec(t_grasrc) + '?s=40';
$(docName + ":eq("+ index +")").attr("src",t_result)
}
}
alterAva(".comment-info_img")
alterAva(".avatar img")
</script>
Django 图像请求
import hashlib
import urllib
from django import template
from django.utils.safestring import mark_safe
register = template.Library()
# return only the URL of the cravatar
# TEMPLATE USE: {{ email|cravatar_url:150 }}
@register.filter
def cravatar_url(email, size=40):
default = "https://example.com/static/images/defaultavatar.jpg"
return "https://cn.cravatar.com/avatar/%s?%s" % (hashlib.md5(email.lower()).hexdigest(), urllib.urlencode({'d':default, 's':str(size)}))
# return an image tag with the cravatar
# TEMPLATE USE: {{ email|cravatar:150 }}
@register.filter
def cravatar(email, size=40):
url = cravatar_url(email, size)
return mark_safe('<img src="%s" height="%d" width="%d">' % (url, size, size))
Ruby 图像请求
# include MD5 gem, should be part of standard ruby install
require 'digest/md5'
# get the email from URL-parameters or what have you and make lowercase
email_address = params[:email].downcase
# create the md5 hash
hash = Digest::MD5.hexdigest(email_address)
# compile URL which can be used in <img src="RIGHT_HERE"...
image_src = "https://cn.cravatar.com/avatar/#{hash}"
Perl 图像请求
使用 Perl 实现 Cravatar 非常简单,但是您确实需要包含几个外部库。这些可能已经安装在您的计算机上,但如果尚未安装,您将必须下载并安装它们。
让我们首先包含我们将使用的库函数:
use URI::Escape qw(uri_escape);
use Digest::MD5 qw(md5_hex);
接下来,假设您可以使用以下变量:
my $email = 'someone@somewhere.com';
my $default = "https://www.example.com/default.jpg";
my $size = 40;
您可以使用以下 Perl 代码构建您的头像 url:
my $crav_url = "https://cn.cravatar.com/avatar/".md5_hex(lc $email)."?d=".uri_escape($default)."&s=".$size;
img这仅构造 URL,因此在打印输出之前不要忘记将其放入标记中。
Python 图像请求
# import code for encoding urls and generating md5 hashes
import urllib, hashlib
# Set your variables here
email = "someone@somewhere.com"
default = "https://www.example.com/default.jpg"
size = 40
# construct the url
cravatar_url = "https://cn.cravatar.com/avatar/" + hashlib.md5(email.lower()).hexdigest() + "?"
cravatar_url += urllib.urlencode({'d':default, 's':str(size)})
如果您使用 Python 3,请尝试 libgravatar (调整为 libcravatar 即可)。这是第三方库,不受 Cravatar 官方支持。
Java 图像请求
如果您想要一种使用 Cravatar 的简单方法,请查看Ralf Ebert 的 jgravatar 库(调整为 jcravatar 即可),否则请继续阅读。
Java 中的事情有点复杂。下面的类将为您提供一个静态方法,该方法返回输入字符串的十六进制格式 md5:
import java.util.*;
import java.io.*;
import java.security.*;
public class MD5Util {
public static String hex(byte[] array) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < array.length; ++i) {
sb.append(Integer.toHexString((array[i]
& 0xFF) | 0x100).substring(1,3));
}
return sb.toString();
}
public static String md5Hex (String message) {
try {
MessageDigest md =
MessageDigest.getInstance("MD5");
return hex (md.digest(message.getBytes("CP1252")));
} catch (NoSuchAlgorithmException e) {
} catch (UnsupportedEncodingException e) {
}
return null;
}
}
然后,此类可用于返回电子邮件地址的 MD5 哈希值(确保先小写!),如下所示:
String email = "someone@somewhere.com";
String hash = MD5Util.md5Hex(email);
使用返回的十六进制字符串,您可以构建您的头像 URL。
PHP 图像请求
使用 PHP 实现 Cravatar 非常简单。PHP提供了strtolower()、md5()、 和urlencode()函数,让我们可以轻松创建头像URL。假设以下数据:
$email = "someone@somewhere.com";
$default = "https://www.somewhere.com/homestar.jpg";
$size = 40;
您可以使用以下 php 代码构建您的头像 url:
$crav_url = "https://cn.cravatar.com/avatar/" . md5( strtolower( trim( $email ) ) ) . "?d=" . urlencode( $default ) . "&s=" . $size;
创建头像 URL 后,您可以随时输出:
<img src="<?php echo $crav_url; ?>" alt="" />
实施示例
此功能将允许您使用 PHP 快速轻松地将 Cravatar 插入页面中:
/**
* Get either a Cravatar URL or complete image tag for a specified email address.
*
* @param string $email The email address
* @param string $s Size in pixels, defaults to 80px [ 1 - 2048 ]
* @param string $d Default imageset to use [ 404 | mp | identicon | monsterid | wavatar ]
* @param string $r Maximum rating (inclusive) [ g | pg | r | x ]
* @param boole $img True to return a complete IMG tag False for just the URL
* @param array $atts Optional, additional key/value attributes to include in the IMG tag
* @return String containing either just a URL or a complete image tag
* @source https://cravatar.com/developer/php-image-requests
*/
function get_cravatar( $email, $s = 80, $d = 'mp', $r = 'g', $img = false, $atts = array() ) {
$url = 'https://cn.cravatar.com/avatar/';
$url .= md5( strtolower( trim( $email ) ) );
$url .= "?s=$s&d=$d&r=$r";
if ( $img ) {
$url = '<img src="' . $url . '"';
foreach ( $atts as $key => $val )
$url .= ' ' . $key . '="' . $val . '"';
$url .= ' />';
}
return $url;
}
创建哈希值(Hash)
Cravatar上的所有URL都基于电子邮件地址的散列值使用。图像和个人资料都可以通过电子邮件的哈希来访问,它被认为是系统内识别身份的主要方式。为确保一致和准确的哈希值,应采取以下步骤来创建哈希:
- 从电子邮件地址中删除前导和尾随空格。
- 强制将所有字符转换为小写。
- 对最终字符串进行md5哈希处理。
以一个示例来说明,假设我们从 “MyEmailAddress@example.com “(注意尾随的空格,这是我们假设的用户误输入的)开始。如果直接对该字符串进行md5编码,我们会得到以下结果(在PHP中):
echo md5( "MyEmailAddress@example.com " );
// "f9879d71855b5ff21e4963273a886bfc"
现在,如果我们将相同的电子邮件地址通过上述过程运行,你会看到我们得到一个不同的结果(再次在PHP中):
$email = trim( "MyEmailAddress@example.com " ); // "MyEmailAddress@example.com"
$email = strtolower( $email ); // "myemailaddress@example.com"
echo md5( $email );
// "0bc83cb571cd1c50ba6f3e8a78ef1346"
这可以很容易地合并为一行:
echo md5( strtolower( trim( "MyEmailAddress@example.com " ) ) );
生成一致的哈希后,你可以请求图像或个人资料。
为 Drupal 集成
由于国内使用 Drupal 的用户不多,所以并未进行最新版的兼容测试,如果遇到代码异常请通过 Cravatar 支持论坛↗反馈。
您可以很方便的为 Drupal 集成 Cravatar 头像服务:
/**
* Implements hook_avatar_default_list_alter().
*
* 替换 Drupal 的默认头像
*/
function cravatar_module_avatar_default_list_alter(&$defaults) {
$defaults['gravatar_default'] = 'https://example.com/path/to/cravatar.jpg';
}
/**
* Implements hook_user_avatar_url_alter().
*
* 替换 Gravatar 头像为 Cravatar 头像
*/
function cravatar_module_user_avatar_url_alter(&$url) {
$sources = array(
'www.gravatar.com',
'0.gravatar.com',
'1.gravatar.com',
'2.gravatar.com',
'secure.gravatar.com',
'cn.gravatar.com',
'gravatar.com',
);
$url = str_replace($sources, 'cn.cravatar.com', $url);
}
/**
* Implements hook_user_profile_picture_alter().
*
* 替换个人资料中的头像上传地址
*/
function cravatar_module_user_profile_picture_alter(&$description) {
$description = '<a href="https://cravatar.com" target="_blank">您可以在 Cravatar 修改您的资料图片</a>';
}
要使用您的自定义模块和相关的钩子函数,您需要按照以下步骤进行操作:
创建一个新的模块文件夹:在 Drupal 的 modules 目录下创建一个新的文件夹,用于存放您的模块文件。您可以将文件夹命名为 cravatar_module 或任何您喜欢的名称。
创建模块信息文件:在您的模块文件夹中创建一个名为 cravatar_module.info.yml 的文件,并添加以下内容:
name: 'Cravatar Module'
type: module
core_version_requirement: ^8 || ^9
package: Custom
version: 1.0
- 创建模块主文件:在您的模块文件夹中创建一个名为
cravatar_module.module的文件,并将之前提供的钩子函数代码添加到该文件中。 - 启用模块:登录到 Drupal 管理后台,转到 “Extend”(扩展)页面,找到您的模块(”Cravatar Module”),然后启用它。
一旦您启用了模块,钩子函数将会生效。根据您的代码,以下是每个钩子函数的作用:
hook_avatar_default_list_alter(): 这个钩子函数用于替换 Drupal 的默认头像。您需要将'https://example.com/path/to/cravatar.jpg'替换为您实际想要用作默认头像的图片URL。hook_user_avatar_url_alter(): 这个钩子函数用于将 Gravatar 头像的URL替换为 Cravatar 头像的URL。当用户请求头像时,URL将被替换为cn.cravatar.com域名下的地址。hook_user_profile_picture_alter(): 这个钩子函数用于修改用户个人资料页面中的头像上传地址。描述文本将显示一个链接,用户可以点击该链接以访问cn.cravatar.com网站来修改他们的资料图片。
确保您的模块文件夹和文件名正确,并按照上述步骤启用模块后,您的自定义逻辑将生效,并应用于 Drupal 站点中的头像功能。
为 Joomla 集成
由于国内使用 joomla 的用户不多,所以并未进行最新版的兼容测试,如果遇到代码异常请通过 Cravatar 支持论坛↗反馈。
您可以很方便的为 Joomla 集成 Cravatar 头像服务:
defined('_JEXEC') or die;
// 替换 Gravatar 头像为 Cravatar 头像
function get_cravatar_url( $url ) {
$sources = array(
'www.gravatar.com',
'0.gravatar.com',
'1.gravatar.com',
'2.gravatar.com',
'secure.gravatar.com',
'cn.gravatar.com',
'gravatar.com',
);
return str_replace( $sources, 'cn.cravatar.com', $url );
}
JPluginHelper::importPlugin('user');
$dispatcher = JEventDispatcher::getInstance();
$dispatcher->register('onFetchUserAvatar', 'get_cravatar_url');
// 替换 Joomla 的默认头像
function set_defaults_for_cravatar( $avatar_defaults ) {
$avatar_defaults['default'] = 'Cravatar 标志';
return $avatar_defaults;
}
JPluginHelper::importPlugin('user');
$dispatcher = JEventDispatcher::getInstance();
$dispatcher->register('onFetchUserAvatarDefaults', 'set_defaults_for_cravatar');
// 替换个人资料中的头像上传地址
function set_user_profile_picture_for_cravatar() {
return '<a href="https://cravatar.com" target="_blank">您可以在 Cravatar 修改您的资料图片</a>';
}
JPluginHelper::importPlugin('user');
$dispatcher = JEventDispatcher::getInstance();
$dispatcher->register('onUserProfilePictureDescription', 'set_user_profile_picture_for_cravatar');
Cravatar 官方 SDK(PHP 版本)
这是 WordPress 网站建设必备但是又是 WordPress 系统本身永远都不可能添加的功能,所以需要一个自定义的通用插件解决方案。
Cravatar 开发库,插件,手机应用程序等…
第三方链接、项目和插件,并非由 Cravatar 和文派开源开发、审查或支持。
- Android
- Applescript (updating Address Book)
- ASP.Net MVC HtmlHelper
- CodeIgniter Library
- Drupal Module
- Expression Engine Plugin
- Geeklog
- JSP/Java
- Outlook Social Connector
- Scala
- Symfony
- Yii PHP Framework
以上库均为 Gravatar 库,您有需要可自行修改为 Cravatar 初认头像库。
为 Typecho 集成
将以下代码加到 Typecho 站点根目录的 config.inc.php 中即可:
集成代码
/**
* 替换Gravatar头像为Cravatar头像
*
* Cravatar是Gravatar在中国的完美替代方案,您可以在https://cravatar.com更新您的头像
*/
define('__TYPECHO_GRAVATAR_PREFIX__', 'https://cn.cravatar.com/avatar/');
集成主题
如果您使用的 typecho 主题本身已支持 gravatar 头像显示,那么您可以在主题的源代码中搜索如下字段:
www.gravatar.com/avatars
cn.gravatar.com/avatars
gravatar.com/avatars
将其替换为
cn.cravatar.com/avatars
cn.cravatar.com/avatars
选其一均可,保存后即可替换完毕,正常使用。
Cravatar 官方 API 文档
基本概念
Cravatar 初认头像服务可以像普通的图片 URL 一样请求,具体格式是:
https://cn.cravatar.com/avatar/HASH
https://cn.cravatar.com/avatar/HASH
其中 HASH 部分是你的电子邮箱的哈希值,此电子邮箱必须在 Cravatar.com / cn.cravatar.com 上注册并绑定头像,否则会尝试返回 Gravatar 头像和 QQ 头像,如果都不存在,则返回默认头像。
电子邮箱的哈希方法
总体一共以下三步:
- 去除首尾两边的空格
- 所有字母转小写
- 计算 MD5 值
以下以 PHP 语言进行演示:
$email = 'cravatar@feibisi.com';
$address = strtolower( trim( $email ) );
$hash = md5( $address );
拼接图片请求 URL
依然以 PHP 语言进行演示:
$url = 'https://cn.cravatar.com/avatar/' . $hash;
指定图片格式
我们当前支持四种图片返回格式,分别是:jpg、jpeg、png、gif。
你可以简单的通过向图片访问 URL 拼接文件后缀的方式来访问特定格式的图片,完整的请求 URL 类似如下:
https://cn.cravatar.com/avatar/e1e7ba949ade0936e071132d2edd3b3c.png
https://cn.cravatar.com/avatar/e1e7ba949ade0936e071132d2edd3b3c.png
特别地:在浏览器明确表明支持 webp(Accept 中包含
image/webp)的情况下我们会强制返回 webp 格式,此时用户无法手工指定图片格式。之所以这样设计是因为 webp 已经可以完全取代其他格式,同时其提供了更小的体积,这给予了我们更快的加载速度。
额外的参数
调整头像大小
默认情况下,我们会返回 80×80 尺寸的头像,但是你可以通过 s 或 size 参数来指定要获取的头像大小,完整的 URL 类似如下:
https://cn.cravatar.com/avatar/e1e7ba949ade0936e071132d2edd3b3c?s=400
https://cn.cravatar.com/avatar/e1e7ba949ade0936e071132d2edd3b3c?s=400
以上 URL 将返回一个 400×400 的图像
默认头像
如果你的邮箱哈希无法匹配到任何头像,则返回我们的默认头像:
你可以通过 d 或 default 参数自己指定默认头像:
https://cn.cravatar.com/avatar/245467ef31b6f0addc72b039b922a4?d=https%3A%2F%2Fcravatar.com%2Fwp-content%2Fuploads%2Fsites%2F9%2F2021%2F07%2F4.png
https://cn.cravatar.com/avatar/245467ef31b6f0addc72b039b922a4?d=https%3A%2F%2Fcravatar.com%2Fwp-content%2Fuploads%2Fsites%2F9%2F2021%2F07%2F4.png
需要注意的是,传递的默认头像地址必须经过 URL 编码,在 PHP 中你可以这样写:
urlencode( 'https://cravatar.com/wp-content/uploads/sites/9/2021/07/4.png' );
urlencode( 'https://cravatar.com/wp-content/uploads/sites/9/2021/07/4.png' );
同时默认头像需要满足以下几个条件:
- 必须是公开可用的(例如,不能位于内部网、本地开发机器、或是存在防火墙等)。
- 必须可以通过标准端口 80 和 443 上的 HTTP 或 HTTPS 进行访问。
- 必须具有可识别的图像扩展名(jpg、jpeg、gif、png)
- 不得包含查询字符串(如果包含,它将被忽略)
除了允许你自己指定默认头像外,我们还准备了一组内置的默认头像,只需要传入 d=默认头像ID 即可调用:
- 404:如果没有与电子邮件哈希关联的图像,则不加载任何图像,而是返回 HTTP 404(未找到文件)响应
- mp:一个简单的卡通风格的人物轮廓
- identicon:一个几何图案(随机生成)
- monsterid:具有不同颜色、面孔的“怪物”(随机生成)
- wavatar:具有不同特征和背景的人脸(随机生成)
- retro:8位色的像素人脸(随机生成)
- robohash:具有不同颜色、面部的机器人(随机生成)
- blank:透明的 PNG 图像(为方便演示,已为其添加了一个边框)
强制加载默认头像
如果由于某种原因你想强制始终返回默认头像,您可以使用 f 或 forcedefault 参数并将其值设置为 y。
https://cn.cravatar.com/avatar/e1e7ba949ade0936e071132d2edd3b3c?f=y
https://cn.cravatar.com/avatar/e1e7ba949ade0936e071132d2edd3b3c?f=y
指定要显示的头像级别
该选项存在于 Gravatar 中,但 Cravatar 并不提供对该选项的支持。这同样是为了符合中国法律。
组合参数
以上所介绍的所有关于 Cravatar 的参数都可以自由组合,比如你可以提供这样的一个头像URL:
https://cn.cravatar.com/avatar/e1e7ba949ade0936e071132d2edd3b3c.png?s=200&d=retro&f=y
https://cn.cravatar.com/avatar/e1e7ba949ade0936e071132d2edd3b3c.png?s=200&d=retro&f=y
以上头像URL将始终返回格式为 png、尺寸为 200 的 8 位色像素人脸。
为 WordPress 集成
1、注意,以下主题因为使用自有的头像方案,完全屏蔽了 Gravatar,所以也不支持 Cravatar:
- 7b2
- 日主题
- 子比主题
2、对于此类主题、插件仍需适配 Cravatar?请到支持论坛中开贴↗获取帮助。
3、如果您是普通用户不想要改代码,快速使用请安装文派头像(WPAvatar)↗插件。
集成代码
您可以很方便的为 WordPress 集成 Cravatar 头像服务,只需要将以下代码加入您的插件或主题的 functions.php 里即可:
if ( ! function_exists( 'get_cravatar_url' ) ) {
/**
* 替换 Gravatar 头像为 Cravatar 头像
*
* Cravatar 是 Gravatar 在中国的完美替代方案,您可以在 https://cravatar.com 更新您的头像
*/
function get_cravatar_url( $url ) {
$sources = array(
'www.gravatar.com',
'0.gravatar.com',
'1.gravatar.com',
'2.gravatar.com',
'secure.gravatar.com',
'cn.gravatar.com',
'gravatar.com',
);
return str_replace( $sources, 'cn.cravatar.com', $url );
}
add_filter( 'um_user_avatar_url_filter', 'get_cravatar_url', 1 );
add_filter( 'bp_gravatar_url', 'get_cravatar_url', 1 );
add_filter( 'get_avatar_url', 'get_cravatar_url', 1 );
}
if ( ! function_exists( 'set_defaults_for_cravatar' ) ) {
/**
* 替换 WordPress 讨论设置中的默认头像
*/
function set_defaults_for_cravatar( $avatar_defaults ) {
$avatar_defaults['gravatar_default'] = 'Cravatar 标志';
return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'set_defaults_for_cravatar', 1 );
}
if ( ! function_exists( 'set_user_profile_picture_for_cravatar' ) ) {
/**
* 替换个人资料卡中的头像上传地址
*/
function set_user_profile_picture_for_cravatar() {
return '<a href="https://cravatar.com" target="_blank">您可以在 Cravatar 修改您的资料图片</a>';
}
add_filter( 'user_profile_picture_description', 'set_user_profile_picture_for_cravatar', 1 );
}
Cravatar 开发指南
Cravatar 完美兼容所有 Gravatar 头像 API 接口,同时如果你未在 Cravatar 设置头像,则会先尝试调用 Gravatar 上的头像数据,其后是 QQ 头像,最后会返回我们为你准备的一组默认头像。
特别地:我们会对所有头像进行人工审核(也包括来自 Gravatar 和 QQ 的头像),所有包含暴恐、色情、政治等违反中国法律的内容都会被屏蔽,并返回默认头像。
我们鼓励所有开发者集成此服务到自己的作品里,为此我们提供了一系列开发文档和 SDK:
为现有的 CMS 集成 Cravatar
为自有产品集成
- API 文档
- PHP 开发 SDK
可用插件目录
在 WordPress 网站中使用 Cravatar
在 Flarum 论坛中使用 Cravatar
https://github.com/vlssu/flarum-cravatar
在 Discuz 论坛中使用 Cravatar
待添加…
在 Z-blog 程序中使用 Cravatar
下载 Z-blog_Cravatar_1.0.2_2023-05-07
在 DeDeCMS 中使用 Cravatar
待添加…
在 Emlog 中使用 Cravatar
待添加…






