在你的WordPress文章当中加入updated标签是个不错的选择,这样你就能够通知到搜索引擎你的文章是什么时候更新过了。另外,如今搜索引擎也把最近更新数和最新修改内容作为评分项目之一,那么在你的WordPress文章当中添加updated标签就显得很有必要了。
Structured Data Errors
在使用谷歌站长工具对网站页面进行分析的时候,会发现三个抓取错误,这三个似乎是每一个使用了WordPress博客系统的网站都会遇到的,其中之一就是关于这个updated class的,叫做:
missing updated class
这个错误造成的原因就是在你的文章页面缺少更新信息,我们通过谷歌的手册里可以知道更新时间数据段是必要的,反而发布时间却是并不必须!另外,entry-title和updated这两个字段需要两个class,但是如果你两个都写,那么恭喜,搜索引擎就会忽略掉updated的内容╮(╯▽╰)╭
所以,最好的办法就是只保留更新日期。
让你的博客在页面标签中显示更新日期
这个做法根据你所使用的主题而千变万化,尤其是如果你使用了并不太规范的第三方主题,就更让人呵呵。所以,在这里呢,路由用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 替代。 这样会把你文章标题下边的发布日期改成最后更新日期。
- Updated Class – 添加 updated class 到页面标签,这样那个错误提示就木有啦。
- Show Updated Text – 在你日期前边显示最新更新字样,省的到时候发布日期和最新评论日期差出三四年~
下边就是修改过的函数:
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; |
这篇文章并非原创,代码和修改内容均有所参考,原文页面见“延伸阅读”。
延伸阅读
How to Add Updated Date to WordPress Articles
本文由 落格博客 原创撰写:落格博客 » 如何在WordPress中修复 missing updated class问题
转载请保留出处和原文链接:https://www.logcg.com/archives/827.html
试了您的方法,希望能行.谢谢~
使用我这个办法要求你的主题必须是2014,别的你需要自己修改修改~我以前用 allinone SEO,现在改用 yost 的 SEO 感觉不错,因为主题的原因我已经注释掉了这段代码,但是 google 依旧没有再报错。你也可以试试看。