我有个习惯,看到哪里报错了,非解决不可,要不然心里惦记着啊,不舒服啊…这最近用谷歌站长工具,发现我这个wordpress博客有一大堆问题啊…例如:
除了最明显的结构化数据这里有无数个页面错误,好在这里大多可以通过修改模版一次性解决.但是如何解决了,最令我无语的是起初我用的是英文版的谷歌站长工具…看不懂,什么叫做Structured Data > hatom (markup: microformats.org)?什么叫做Missing: updated? 什么叫做Missing: author?搞不懂…看了半天帮助文档,弄了一晚上没搞明白,外加坑爹中国GFW,又不能上google plus…好多服务都限制了.不过功夫不负有心人.我看了无数遍帮助文档,还有Structured Data Testing Tool里面的Examples,以及谷歌的论坛,终于解决了.下面来说一下这两个问题怎么解决了.
关于Missing: author解决办法:
官方说在HTML内添加:<a href=”你的g+地址”?rel=”author”>Google</a>(可能是这样的,我不记得了…)但是这样做页面就会多出来个google,那么我只好通过删掉内容,放一个空标签进去了.这样似乎可以解决,但是我不喜欢空标签,我看了Examples里面有一个这样写的:
<link rel="author" href="https://plus.google.com/107770226485624482093" />
我试了一下,编辑header.php,添加此段引用代码,将href=””内地址换成你自己的.就通过了测试…(对了前提是你要有通过E-mail验证.)
关于Missing: updated
解决办法:
找到主题的function.php这个地方,如图
在发布日期这里找到class="entry-date"
里面添加一个updated就可以了,只是标记作用.
这些小问题,解决起来很容易,可是实际在寻找解决方法的时候可是困难重重,希望能帮助哪些需要解决也没找到如何解决的朋友.直到后来,,,昨天发现原来有中文版的谷歌站长工具,真是费尽我脑汁去翻译,晕死了.
如果有人遇到了相同的问题或者更多关于结构化数据错误,可以去这里Google Product Forums搜索答案,就不要用baidu了,它什么也不会告诉你的: )
PS:毕竟本文有时效性,不同的主题可能也不一样,无法做到通用,我也只能做到提供一种方案,大家举一反三咯~有些模板也要修改PO和MO的,大家可参考参考WORDPRESS自定义模板后的PO文本翻译修改以及MO修改教程(更新日期:2015-06-05)
楼主的这个博文太好了,解决我的大问题了,谢谢!
博主,可否加个友链?谢谢。 https://www.ijidi.cn
试试这个方法
http://www.619193610.com/ 加个友链吧? qq 1810620388
刚好遇见这个问题,学习了!
也不知是否解决了兄弟的问题.若有帮助实乃最大的支持
昨晚被missing:update和missing:author的问题折腾至大半夜。可能是用脑过度,凌晨两点闭上眼睡觉的时候,竟感觉到天旋地转。
我的Word Press网站是在今年5月15日开通,主题是Twenty Thirteen。
关于missing:author的部分,我不太理解站长所说,所以这部分没有照做。我是用了其他方式更新author的部分。因为我用的主题据说是只有单一作者的时候,不会显示作者是谁,所以要多“制造”一个作者,然后随便开一个贴,再删除也无所谓,所有的贴就会出现作者了。
不过,当我去live testing的时候,错误讯息依旧。
missing:update的部分,我照站长的方式做了,但在live testing的还是会出现错误讯息。但隔天早上还要上班,所以就此打住。
上班的时候也不断的上网找解决方案,但这方面的资讯不多,我也不是IT出身,这真的是把我难道了。
结果呢,还是硬着头皮找答案,再去live testing,虽然出现update和author两项错误讯息,但具体讯息是Node is empty,再看看错误讯息列表,感觉有些眉目。
就这样寻线追击,我发现所有出错的部分其实都是一样,不管是update还是author,总之就是少了什么。
结果我发现,在WP主题函数,有一段关于作者的编码:
if ( ‘post’ == get_post_type() ) {
printf( ‘%3$s‘,
esc_url( get_author_posts_url( get_the_author_meta( ‘ID’ ) ) ),
esc_attr( sprintf( __( ‘View all posts by %s’, ‘twentythirteen’ ), get_the_author() ) ),
get_the_author()
);
}
}
endif;
请注意第二行,a class=”url fn n”的部分,在live testing错误讯息列表的部分,url和fn都有讯息,唯独n是空的,我就想说,这是不是问题的根源。
结果再上网查找,n是指中间名,西方人都是有的,如果要加入中间名,就要在author部分加设定n的值。如果不想放中间名该怎么办呢?直接在删掉n即可。
我删了n之后,再去做live testing。这次没有错误讯息了,出现的字眼是good。
希望我的回复可以帮到遇上类似问题的人。
话说回来,谷歌实在是折腾人,什么都要符合它的标准。
😆 不错哦,你也可以写一篇总结在你自己的网站上哦~毕竟我这篇文章有时效性的,不同的主题可能也不一样,无法做到通用,,,我也只能做到提供一种方案,大家举一反三咯~带来不便还望理解..
另外你的回复中第二行没有看到a class=”url fn n”,无法理解~
有些模板也要修改PO和MO的你可以参考WORDPRESS自定义模板后的PO文本翻译修改以及MO修改教程 😀
真的是老眼昏花,之前的回复贴错编码了,特此重贴:
// Post author
if ( ‘post’ == get_post_type() ) {
printf( ‘%3$s‘,
esc_url( get_author_posts_url( get_the_author_meta( ‘ID’ ) ) ),
esc_attr( sprintf( __( ‘View all posts by %s’, ‘twentythirteen’ ), get_the_author() ) ),
get_the_author()
);
}
}
endif;
在第三行,应该可以看到a class=”url fn n” ,我就是删掉n,才把问题解决。
完全依赖现成的东西还是不行,还是要掌握一点基本的编码知识。
我以后还会常常来叨扰,哈哈!
啊啊啊!原来我没贴错,而是把编码写在这里的时候,有些段落就会神秘失踪……
我昨天也上谷歌站长工具查了下,目前我的站基本正常,不过大陆这边,google屏蔽的厉害所以也就没怎么研究了.
留言编辑器可能不能很好支持编码显示,,,既然搞定了那就祝贺祝贺了,几天没白折腾. 🙂
谢谢博主,真心有用的文章!!!
感谢你的支持~ 😉
关于Missing: updated,我在functions.php中找不到class=”entry-date” 这一段,是需要自己添加么。。代码来源是哪里呢?
我用的wordpress 3.9系统,主题是Twenty Twelve,,,如果你找不到entry-date,你可以尝试审查你的主题关于日期这一块代码,并找到对应的位置.
哦 我找找看,谢谢!!
喜欢折腾是好事