• 歡迎訪問奇跡の海網站,本站不上傳任何資源,所有資源均來自于網絡,歡迎加入奇跡の海~!奇跡の海-WordPress QQ群
  • 本站下載資源為網絡上收集整理而來,并且以計算機技術研究交流為目的,版權歸原作者所有,僅供大家參考,學習,不存在任何商業目的與商業用途.
  • 本站系統鏡像均來自于官方原版,ed2k可視為P2P下載鏈接。所有操作系統默認均為試用版,如有正版密鑰可以有效激活,本站不提供任何激活和相關服務。

讓WordPress隨機顯示本地頭像

WP其他 奇跡の海 2年前 (2017-07-30) 596次瀏覽 已收錄 0個評論 掃描二維碼

讓WordPress隨機顯示本地頭像

Gravatar頭像加載緩慢的問題,一直困擾著我們,啟用頭像本地緩存或者緩存到類似七牛云上可能是唯一可行的辦法。

還有一個讓人郁悶的是,很多評論留言者并沒有申請Gravatar頭像,只能顯示WordPress自帶的古怪頭像,看著很不爽。

下面分享一段隨機顯示本地評論頭像的代碼,預先準備一些漂亮的圖片代替WordPress自帶的頭像。

添加代碼

將下面代碼添加到當前主題functions.php中:

add_filter( 'get_avatar' , 'local_random_avatar' , 1 , 5 );
function local_random_avatar( $avatar, $id_or_email, $size, $default, $alt) {
    if ( ! empty( $id_or_email->user_id ) ) {
        $avatar = ''.get_template_directory_uri().'/avatar/admin.jpg';
    }else{
        $random = mt_rand(1, 10);
        $avatar = ''.get_template_directory_uri().'/avatar/'. $random .'.jpg';
    }
    $avatar = "<img alt='{$alt}' src='{$avatar}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
    return $avatar;
}

其中:mt_rand(1,?10);數字為隨機圖片張數可以自行修改。

準備頭像圖片

在當前主題目錄中新建一個名稱為avatar的文件夾,里面放10張名稱連續的jpg圖片,比如1.jpg、2.jpg、3.jpg………,和一張用于管理員的圖片,名稱為admin.jpg

添加上述代碼后,只有管理員是顯示固定的圖片,其他留言者都是隨機顯示預先準備的頭像圖片,包括注冊用戶。

可以安裝本地上傳頭像插件:Simple Local Avatars,讓注冊用戶在后臺上傳頭像,從而顯示自己固定的頭像。

可能有童鞋會問,已申請Gravatar頭像的留言者,是否能顯示正常的Gravatar頭像,理論上是可以通過判斷實現的,不過這就需要到Gravatar頭像站點去檢測,會嚴重拖慢速度,得不償失。

還可以試試,用留言者名稱第一個字母為頭像的插件WP First Letter Avatar

另附,一段緩存Gravatar頭像到七牛云存儲的代碼

function qiniu_avatar($avatar) {
  $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*.srcset=.*/','<img src="http://你的緩存域名/avatar/$1-$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
  return $avatar;
}
add_filter( 'get_avatar', 'qiniu_avatar', 10, 3 );

如果你使用了七牛云存儲,可以將上面的代碼添加當前主題functions.php中,可將Gravatar頭像緩存到七牛,具體如何實現,不是本文的重點,可自行網上搜索相關文章。


版權聲明:本站所有文章和資源使用CC BY-NC-SA 4.0協議授權發布 , 轉載應當以相同方式注明文章來自“SeaOMC.COM->讓WordPress隨機顯示本地頭像!在下邊可以分享本文哦!
喜歡 (0)
[]
分享 (0)
奇跡の海
關于作者:
一個WordPress菜鳥!
發表我的評論
取消評論

表情 貼圖 加粗 刪除線 居中 斜體 簽到

Hi,您需要填寫昵稱和郵箱!

  • 昵稱 (必填)
  • 郵箱 (必填)
  • 網址
中国福利彩票36选7开奖结果