在你的WordPress文章當中加入updated標籤是個不錯的選擇,這樣你就能夠通知到搜索引擎你的文章是什麼時候更新過了。另外,如今搜索引擎也把最近更新數和最新修改內容作為評分項目之一,那麼在你的WordPress文章當中添加updated標籤就顯得很有必要了。
結構化數據錯誤
在使用谷歌站長工具對網站頁面進行分析的時候,會發現三個抓取錯誤,這三個似乎是每一個使用了WordPress博客系統的網站都會遇到的,其中之一就是關於這個updated class的,叫做:
缺少更新類
這個錯誤造成的原因就是在你的文章頁面缺少更新信息,我們通過谷歌的手冊裡可以知道更新時間數據段是必要的,反而發佈時間卻是並不必須!另外,entry-title和updated這兩個字段需要兩個class,但是如果你兩個都寫,那麼恭喜,搜索引擎就會忽略掉更新的內容╮(╯▽╰)╭
所以,最好的辦法就是只保留更新日期。
讓你的博客在頁面標籤中顯示更新日期
這個做法根據你所使用的主題而千變萬化,尤其是如果你使用了並不太規範的第三方主題,就更讓人呵呵。所以,在這裡呢,路由用WordPress自帶主題Twenty Fourteen作為示例,當然了,這也是因為目前(至少是寫這篇文章的時候)落格正在使用Twenty Fourteen。
對於任何主題呢,路由都是推薦大家使用“子主題”的方式來修改主題的,這樣就極大程度上的避免了主題更新的時候覆蓋掉你的改動,比如統計代碼,比如現在我們要做的修改。
要不然,兩個月後誰知道你改了什麼。(關於子主題的使用方法其實很簡單,官方的說明現在已經有了中文版本,講述十分詳細,具體鏈接可以看頁尾的“延伸閱讀”。)
對於Twenty Fourteen這個主題,它關於這方面的定義其實是在inc/template-tags.php文件中的
具體的代碼我摘抄了下來:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
if ( ! function_exists( 'twentyfourteen_posted_on' ) ) : /** * Print HTML with meta information for the current post-date/time and author. * * @since Twenty Fourteen 1.0 * * @return void */ function twentyfourteen_posted_on() { if ( is_sticky() && is_home() && ! is_paged() ) { echo '<span class="featured-post">' . __( 'Sticky', 'twentyfourteen' ) . '</span>'; } // Set up and print post meta information. printf( '<span class="entry-date"><a href="%1$s" rel="bookmark"><time class="entry-date" datetime="%2$s">%3$s</time></a></span> <span class="byline"><span class="author vcard"><a class="url fn n" href="%4$s" rel="author">%5$s</a></span></span>', esc_url( get_permalink() ), esc_attr( get_the_date( 'c' ) ), esc_html( get_the_date() ), esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ), get_the_author() ); } endif; |
當然,我們不能直接去修改這個文件——雖然它能夠立竿見影的實現效果,但是一旦更新,恐怕就沒那麼好受了。
所以,我們使用子主題的特性來覆蓋掉這個函數。具有覆蓋功能的文件,functions.php就是其中之一,具體的還是建議大家去參考官方文檔,這里路由只說明,這個文件在子主題的定義中是比較特殊的幾個,它不僅僅是直接替換父主題的文件,而是可以將函數附加和替換掉父主題中的函數。
改動大概有三個部分:
- 顯示更新日期 – 編輯functions.php把 get_the_date 函數用 get_the_modified_date 替代。 這樣會把你文章標題下邊的發布日期改成最後更新日期。
- 更新類 – 添加 更新 class 到頁面標籤,這樣那個錯誤提示就木有啦。
- 顯示更新的文字 – 在你日期前邊顯示最新更新字樣,省的到時候發布日期和最新評論日期差出三四年~
下邊就是修改過的函數:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
if ( ! function_exists( 'twentyfourteen_posted_on' ) ) : /** * Print HTML with meta information for the current post-date/time and author. * * @since Twenty Fourteen 1.0 * * @return void */ function twentyfourteen_posted_on() { if ( is_sticky() && is_home() && ! is_paged() ) { echo '<span class="featured-post">' . __( 'Sticky', 'twentyfourteen' ) . '</span>'; } // Set up and print post meta information. printf( '最新更新 <span class="entry-date updated"><a href="%1$s" rel="bookmark"><time class="entry-date updated" datetime="%2$s">%3$s</time></a></span> <span class="byline"><span class="author vcard"><a class="url fn n" href="%4$s" rel="author">%5$s</a></span></span>', esc_url( get_permalink() ), esc_attr( get_the_modified_date( 'c' ) ), esc_html( get_the_modified_date() ), esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ), get_the_author() ); } endif; |
這篇文章並非原創,代碼和修改內容均有所參考,原文頁面見“延伸閱讀”。
延伸閱讀
本文由 落格博客 原創撰寫:落格博客 » 如何在WordPress中修復 missing updated class問題
轉載請保留出處和原文鏈接:https://www.logcg.com/archives/827.html
試了您的方法,希望能行.謝謝~
使用我這個辦法要求你的主題必須是2014,別的你需要自己修改修改~我以前用 allinone SEO,現在改用 yost 的 SEO 感覺不錯,因為主題的原因我已經註釋掉了這段代碼,但是 google 依舊沒有再報錯。你也可以試試看。