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. 没有图片

    2013.04.23

    CentOS 6.4 系统各个目录的作用详解

    文章转载自网络,留作自己没事参考之用,估计对…

  2. 没有图片

    2010.03.17

    SSH+MyEnTunnel+Firefox+AutoProxy完全方案

    本来对翻墙也没有很强烈的欲望,有时偶尔用一下…

  3. 没有图片

    2010.12.09

    WordPress 3.0.3 发布

    WordPress近来动作真够快的,Word…

  4. 没有图片

    2012.11.03

    五个很实用的HTML5接口

    1.Element.classList cl…

  5. 没有图片

    2010.04.28

    Supesite 7.5 自定义信息无法删除的终极解决办法

    用Supesite 7.5 做站,肯定会用到…

  6. 没有图片

    2011.12.22

    LNMP的mail函数不能发送邮件解决办法

    编译好的LNMP环境下,WordPress的…

评论

  1. 平潭恒升传媒 2011.04.05 5:23下午

    给力支持一个

  2. 明月登楼 2011.04.03 4:42下午

    我也在用,不错,这个插件很棒的,特别是评论多了以后!

  3. Jessy 2011.04.03 3:20下午

    备案害死人啊