這篇文章主要介紹了在WordPress中實現評論頭像的自定義默認和延遲加載,需要的朋友可以參考下
自定義 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, 在 前添加 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 依賴性強的平臺來說這種做法未必是好事.
選擇是否延遲加載圖片, 要衡量內容的重要性和頁面的性能, 在其中取得平衡很重要.
新聞熱點
疑難解答