现在多数情况下都是用的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行:
- if ( is_ssl() ) {
- $host = ‘https://secure.gravatar.com’;
- } else {
- if ( !emptyempty($email) )
- $host = sprintf( “http://%d.gravatar.com”, ( hexdec( $email_hash[0] ) % 2 ) );
- else
- $host = ‘http://0.gravatar.com’;
- }
替换为:
- $host = ‘https://secure.gravatar.com’;
或者(支持头像缓存插件)
- $host = ‘http://cn.gravatar.com’;
WP4.2之后版本,打开wordpress程序目录的wp-includes文件夹,打开link-template.php,将大约第3604行的:
- $url = sprintf( ‘http://%d.gravatar.com/avatar/%s’, $gravatar_server, $email_hash );
修改为:
- $url = sprintf( ‘http://cn.gravatar.com/avatar/%s’, $email_hash );
之所以说“笨”是因为下次更新程序,还需要再次修改,不过这个方法最实用。
发表回复