替换默认Gravatar服务器

·

现在多数情况下都是用的SSL了,大致在functions.php里面添加如下代码:

function get_ssl_avatar($avatar) {
$avatar = preg_replace(‘/.*\/avatar\/(.*)\?s=([\d]+)&.*/’,'<img src=”https://secure.gravatar.com/avatar/$1?s=$2″ class=”avatar avatar-$2″ height=”$2″ width=”$2″>’,$avatar);
return $avatar;
}
add_filter(‘get_avatar’, ‘get_ssl_avatar’);

 

其中:https://secure.gravatar.com

可以替换为 https://cdn.v2ex.com 或者  https://gravatar.loli.net/

根据本人测试的情况,其中cdn.v2ex.com的头像会被i0.wp.com这样的缓存,导致打开网页超慢;gravatar.loli.net,目前一切正常!

 

另一个比较笨的方法:

打开wordpress程序目录的wp-includes文件夹,找到pluggable.php(WP4.2之前版本)打开,将大约2150至2157行:

  1. if ( is_ssl() ) {
  2.     $host = ‘https://secure.gravatar.com’;
  3. else {
  4.     if ( !emptyempty($email) )
  5.         $host = sprintf( “http://%d.gravatar.com”, ( hexdec( $email_hash[0] ) % 2 ) );
  6.     else
  7.         $host = ‘http://0.gravatar.com’;
  8. }

替换为:

  1. $host = ‘https://secure.gravatar.com’;

或者(支持头像缓存插件)

  1. $host = ‘http://cn.gravatar.com’;

WP4.2之后版本,打开wordpress程序目录的wp-includes文件夹,打开link-template.php,将大约第3604行的:

  1. $url = sprintf( ‘http://%d.gravatar.com/avatar/%s’, $gravatar_server, $email_hash );

修改为:

  1. $url = sprintf( ‘http://cn.gravatar.com/avatar/%s’, $email_hash );

之所以说“笨”是因为下次更新程序,还需要再次修改,不过这个方法最实用。

《“替换默认Gravatar服务器”》 有 1 条评论

  1. F 的头像
    F

    大妈我把混谈看成混蛋了【滑稽】

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注