程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 在WordPress中實現評論頭像的自定義默認和延遲加載

在WordPress中實現評論頭像的自定義默認和延遲加載

編輯:PHP綜合

自定義 WordPress 默認評論頭像
對於沒有設置Gravatra頭像的評論者來說,WordPress會顯示一個你在後台設置的默認頭像,可以是神秘人、空白、默認的Gravatar 標志等等。但是這些頭像有一個共同的不足之處,就是不怎麼美觀,可看性不強!打個比方,如果你去一個博客閱讀文章,但當你放心評論文章的讀者頭像都是小怪物、復古等一系列WordPress自動生成的“不堪入目”的頭像時,你還有很濃的興趣去閱讀這個博客的文章嗎?我想答案是肯定的!那麼,你有沒有想過,自己設計或找一個屬於你博客、適合你博客的默認WordPress頭像那?好了,周良就不吊大家的胃口了,讓我來說一下如何不使用插件實現自定義WordPress默認評論頭像的方法。

方法很簡單,將下面我提供的這段代碼放在你正在使用的主題functions.php文件中。

<?php
// Make a new default gravatar available on the dashboard
function newgravatar ($avatar_defaults) {
$myavatar = get_bloginfo('template_directory') . '/images/tweaker.jpg';
$avatar_defaults[$myavatar] = "Tweaker";
return $avatar_defaults;
}
add_filter( 'avatar_defaults', 'newgravatar' );
?>


上面代碼中的/images/tweaker.jpg就是自定義默認頭像的相對路徑,你可以自行修改圖片的地址。建議將頭像放到你正在使用的主題images文件下面。

延遲加載 WordPress 評論頭像
修改 HTML 結構

因為前面說到在新式浏覽器中的問題, 我們不能再用一般書寫 HTML 圖片的方式, 而是要將占位符寫到 src 屬性, 而將真正的圖片地址寫在 data-original 屬性上. 所以 WordPress 頭像代碼結構應該是下面這樣的.

<img class="avatar" src="占位符圖片.gif" data-original="頭像圖片.jpg" />

在 WordPress 中, 本來輸出頭像如下.

<?php echo get_avatar($comment); ?>

現在需要改為適合 Lazy Load 插件的結構如下.

<?php echo '<img class="avatar" src="占位符圖片.gif" alt="" data-original="' . preg_replace(array('/^.+(src=)(\"|\')/i', '/(\"|\')\sclass=(\"|\').+$/i'), array('', ''), get_avatar($comment)) . '" />'; ?>

這裡建議使用 loading 圖片或者默認頭像作為占位符圖片.

添加 Lazy Load 支持

打開 footer.php, 在 </body> 前添加 Lazy Load 插件和調用即可.

<script src="jquery.lazyload.js"></script>
<script>
/* <![CDATA[ */
$("img.avatar").lazyload();
/* ]]> */
</script>

當然, 在這之前你還需確保你的網站已經載入 jQuery. 完整的說明可以參考我翻譯的關於 Lazy Load 的文章.

使用 Lazy Load 的優缺點

為什麼用要 Lazy Load? 可能使用之前你就知道, 可以延遲加載圖片, 提升頁面加載速度. 但其實緊緊是速度問題, 其對網站的 SEO 也很重要. 比如: 現在有某文章頁面, 後面有 N 多人回復, 但這些回復者的頭像與文章內容往往沒有關系, 我們不希望搜索引擎收錄這麼多無關的圖片.

換個角度, 如果我們做的是電子商務網站, 希望產品的 description 中有豐富的圖文信息, 並且被搜索引擎爬取. 但這些圖片往往尺寸大影響加載速度, 淘寶為了頁面性能也已經全部延遲加載, 而那些對 SEO 依賴性強的平台來說這種做法未必是好事.

選擇是否延遲加載圖片, 要衡量內容的重要性和頁面的性能, 在其中取得平衡很重要.

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved