gravatar被墻問(wèn)題是各大使用gravatar頭像站長(zhǎng)朋友一個(gè)比較頭痛的問(wèn)題了,對(duì)此小編今天為各位整理了一篇獎(jiǎng)WordPress評(píng)論者頭像緩存到本地的解決方案,下面來(lái)看看.
各種忙碌,不多說(shuō)了,許久未來(lái),gravatar被墻已經(jīng)有一陣了,看了下本地的頭像緩存全成了默認(rèn)頭像,還好沒(méi)有影響到訪問(wèn)速度,下面是最新的緩存到本地的代碼,解決了gravatar被墻的問(wèn)題,依舊是替換原來(lái)functions.php中的相關(guān)代碼,清除掉你本地的緩存圖片,讓重新生成吧~~
可能現(xiàn)在本站有部分頁(yè)面打開(kāi)較為緩慢,是因?yàn)檎谏尚碌木彺骖^像,會(huì)慢點(diǎn),打開(kāi)過(guò)一次就OK了,當(dāng)然,別人打開(kāi)過(guò)的話也會(huì)緩存完成,你訪問(wèn)也就快了~ 見(jiàn)諒~代碼如下:
- function my_avatar( $email, $size = '42', $default = '', $alt = '') {
- $f = md5( strtolower( $email ) );
- // 以下代碼將頭像緩存到wp-content目錄下
- $a = 'http://a.zpc.me/'. $f . $size . '.png';
- $e = WP_CONTENT_DIR . '/avatar/' . $f . $size . '.png';
- $d = WP_CONTENT_DIR . '/avatar/' . $f . '-d.png';
- if($default=='')
- $default = 'http://a.zpc.me/default.jpg';
- $t = 2592000; // 緩存有效期30天, 這里單位:秒
- if ( !is_file($e) || (time() - filemtime($e)) > $t ) {
- if ( !is_file($d) || (time() - filemtime($d)) > $t ) {
- // 驗(yàn)證是否有頭像
- $uri = 'https://secure.gravatar.com/avatar/' . $f . '?d=404';
- $headers = @get_headers($uri);
- if (!preg_match("|200|", $headers[0])) {
- // 沒(méi)有頭像,則新建一個(gè)空白文件作為標(biāo)記
- $handle = fopen($d, 'w');
- fclose($handle);
- $a = $default;
- }
- else {
- // 有頭像且不存在則更新
- $r = get_option('avatar_rating');
- $g = 'https://secure.gravatar.com/avatar/'. $f. '?s='. $size. '&r=' . $r;
- copy($g, $e); //開(kāi)源軟件:Vevb.com
- }
- }
- else {
- $a = $default;
- }
- }
- $avatar = "<img alt='{$alt}' src='{$a}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
- return apply_filters('my_avatar', $avatar, $email, $size, $default, $alt);
- }
其他關(guān)于頭像緩存可接著往下看,下面的緩存到本地代碼,便加入了該判斷,也就解決了我的問(wèn)題,代碼如下:
- //code by ludou
- function my_avatar( $email, $size = '48', $default = '', $alt = '') {
- $f = md5( strtolower( $email ) );
- // 以下代碼將頭像緩存到wp-content目錄下
- $a = WP_CONTENT_URL . '/avatar/'. $f . $size . '.png';
- $e = WP_CONTENT_DIR . '/avatar/' . $f . $size . '.png';
- $d = WP_CONTENT_DIR . '/avatar/' . $f . '-d.png';
- if($default=='')
- $default = 'http://a.zpc.me/default.jpg';
- $t = 2592000; // 緩存有效期30天, 這里單位:秒
- if ( !is_file($e) || (time() - filemtime($e)) > $t ) {
- if ( !is_file($d) || (time() - filemtime($d)) > $t ) {
- // 驗(yàn)證是否有頭像
- $uri = 'http://www.gravatar.com/avatar/' . $f . '?d=404';
- $headers = @get_headers($uri);
- if (!preg_match("|200|", $headers[0])) {
- // 沒(méi)有頭像,則新建一個(gè)空白文件作為標(biāo)記
- $handle = fopen($d, 'w');
- fclose($handle);
- $a = $default;
- }
- else {
- // 有頭像且不存在則更新
- $r = get_option('avatar_rating');
- $g = 'http://www.gravatar.com/avatar/'. $f. '?s='. $size. '&r=' . $r;
- copy($g, $e);
- }
- }
- else {
- $a = $default;
- }
- }
- $avatar = "<img alt='{$alt}' src='{$a}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
- return apply_filters('my_avatar', $avatar, $email, $size, $default, $alt);
- }
在wp-content目錄下創(chuàng)建avatar目錄,權(quán)限755,把上面的代碼放入function.php中 ?>前,調(diào)用頭像的地方 由 get_avatar 改為 my_avatar.
新聞熱點(diǎn)
疑難解答
圖片精選