WordPress头像缓存:WP Gravatar Mini Cache V1.0.4

近来博客联盟网站因备案临时关闭,我时间就多了,就利用这几天折腾一下WordPress,今天的新主题 LSZ Thinky Pro V3.1 准备启用头像缓存,以提升速度,向大家推荐WordPress头像缓存:WP Gravatar Mini Cache V1.0.4。迷你 Gravatar 头像缓存插件,可以将 Gravatar 头像缓存至本地,以加快加载速度,使其不受 Gravatar 服务器连接速度。

也可以直接把以下代码复制到functions.php的 之间。

if ( !function_exists( 'get_avatar' ) ) :
function get_avatar( $id_or_email, $size = '96', $default = '', $alt = false ) {
  if ( ! get_option('show_avatars') )
    return false;
 
  if ( false === $alt)
    $safe_alt = '';
  else
    $safe_alt = esc_attr( $alt );
 
  if ( !is_numeric($size) )
    $size = '96';
 
  $email = '';
  if ( is_numeric($id_or_email) ) {
    $id = (int) $id_or_email;
    $user = get_userdata($id);
    if ( $user )
      $email = $user->user_email;
  } elseif ( is_object($id_or_email) ) {
    // No avatar for pingbacks or trackbacks
    $allowed_comment_types = apply_filters( 'get_avatar_comment_types', array( 'comment' ) );
    if ( ! empty( $id_or_email->comment_type ) && ! in_array( $id_or_email->comment_type, (array) $allowed_comment_types ) )
      return false;
 
    if ( !empty($id_or_email->user_id) ) {
      $id = (int) $id_or_email->user_id;
      $user = get_userdata($id);
      if ( $user)
        $email = $user->user_email;
    } elseif ( !empty($id_or_email->comment_author_email) ) {
      $email = $id_or_email->comment_author_email;
    }
  } else {
    $email = $id_or_email;
  }
 
  if ( empty($default) ) {
    $avatar_default = get_option('avatar_default');
    if ( empty($avatar_default) )
      $default = 'mystery';
    else
      $default = $avatar_default;
  }
 
  if ( !empty($email) )
    $email_hash = md5( strtolower( $email ) );
 
  if ( is_ssl() ) {
    $host = 'https://secure.gravatar.com';
  } else {
    if ( !empty($email) )
      $host = sprintf( "http://%d.gravatar.com", ( hexdec( $email_hash{0} ) % 2 ) );
    else
      $host = 'http://0.gravatar.com';
  }
 
  if ( 'mystery' == $default )
    $default = "$host/avatar/ad516503a11cd5ca435acc9bb6523536?s={$size}"; // ad516503a11cd5ca435acc9bb6523536 == md5('unknown@gravatar.com')
  elseif ( 'blank' == $default )
    $default = includes_url('images/blank.gif');
  elseif ( !empty($email) && 'gravatar_default' == $default )
    $default = '';
  elseif ( 'gravatar_default' == $default )
    $default = "$host/avatar/s={$size}";
  elseif ( empty($email) )
    $default = "$host/avatar/?d=$default&s={$size}";
  elseif ( strpos($default, 'http://') === 0 )
    $default = add_query_arg( 's', $size, $default );
 
  if ( !empty($email) ) {
    $out = "$host/avatar/";
    $out .= $email_hash;
    $out .= '?s='.$size;
    $out .= '&d=' . urlencode( $default );
 
    $rating = get_option('avatar_rating');
    if ( !empty( $rating ) )
      $out .= "&r={$rating}";
 
//--- WP Gravatar Mini Cache v1.0.3 --- Start ------------------------------
 
  $ev_time = 1209600;
  if (!is_dir(ABSPATH.'ev-iava/')) { mkdir(ABSPATH.'ev-iava/'); }
  $ev_abs = ABSPATH.'ev-iava/'.$email_hash.'_'.$size.'.jpg';
  $ev_url = get_bloginfo('wpurl').'/ev-iava/'.$email_hash.'_'.$size.'.jpg';
  if (!is_file($ev_abs)||(time()-filemtime($ev_abs))>$ev_time){
    copy($out,$ev_abs);
  }
  $out = $ev_url;
 
//--- WP Gravatar Mini Cache v1.0.3 --- End --------------------------------
 
    $avatar = "{$safe_alt}";
  } else {
 
//--- WP Gravatar Mini Cache v1.0.3 --- Start ------------------------------
 
  $ev_abs = ABSPATH.'ev-iava/'.$size.'.jpg';
  $ev_url = get_bloginfo('wpurl').'/ev-iava/'.$size.'.jpg';
  if (!is_file($ev_abs)||(time()-filemtime($ev_abs))>$ev_time){
    copy($default,$ev_abs);
  }
  $default = $ev_url;
 
//--- WP Gravatar Mini Cache v1.0.3 --- End --------------------------------
 
    $avatar = "{$safe_alt}";
  }
 
  return apply_filters('get_avatar', $avatar, $id_or_email, $size, $default, $alt);
}
endif;

跟踪WP官方最新更新:http://wordpress.org/extend/plugins/wp-gravatar-mini-cache/

[download id=”2″]

思章老师

认准了方向,就要勇敢地走下去,十年磨一剑,我相信,只要坚持,一切都有可能。

相关日志

  1. 没有图片

    2009.07.09

    Twitter近来无法访问 更新你的Twitter的解决办法

    作为目前最受欢迎的微博客系统Twitter,…

  2. 没有图片

    2011.10.23

    WordPress日志分栏显示方法初探

    通常我们见到的WordPress博客显示的文…

  3. 没有图片

    2009.11.10

    用Windows Live Writer更新WordPress日志

    曾经多次设置用Windows Live Wr…

  4. 没有图片

    2010.03.03

    读取RSS Feed PHP代码

    为了实现网站页面里读取RSS Feed内容并…

  5. 没有图片

    2009.10.09

    文字动画的设置-菠萝AE学习笔记

    实验项目13206303 文字动画的设置 实…

  6. 没有图片

    2009.07.06

    饭否 WordPress 插件 Fanfou Tools

    这个是fanfou.com的Wordpres…

评论

  1. Yeahlee 2011.05.02 7:51上午

    谢谢已用上那段代码,~~ 博客很不错 赞一个