中原威科

去除wordpress头部返回信息中的shortlink

今日本想使用百度抓取诊断工具抓取本站文章看下代码有没有错误,结果意外发现头部信息中包含wordpress默认的链接,如图(点击看大图)
20140923175435
本以为我所使用的主题作者应该已经去除了shortlink(短链接),因为查看本站文章源文件中不包含shortlink,但是却包含在服务器返回信息中。对于谷歌来说,wordpress默认链接不影响谷歌对网站的收录,而且谷歌对页面301的更新比较快;但是百度对页面301的反应时间则要长的多,一般为3个月或者更久,之前用wordpress做过一个网站,使用固定链接后半年都还是只有首页快照,但把固定链接改为默认后不久网站内容就被收录了,所以如果我使用了固定链接,就不希望在网站的任何地方还有短链接。
还好wordpress是开源的,只要更改源程序,或者在主题中的function.php加入一些去掉该信息的代码就OK了。

方法一

打开wordpress中 wp-includes目录下的default-filters.php(我用的是wordpress 4.0),找到第212行左右,或者直接搜索【shortlink】,找到以下两行代码:

add_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );

add_action( 'template_redirect', 'wp_shortlink_header', 11, 0 );

第一个是服务器返回信息中包含shortlink,第二个是网页中包含shortlink,只要对这两行代码进行注释即可,分别在每行代码的最前面加上【//】。

//add_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );
//add_action( 'template_redirect', 'wp_shortlink_header', 11, 0 );

OK,再次使用百度抓取诊断工具抓取文章页面,发现短链接已经不存在了。
20140923171623

方法二

本地编辑主题文件中的function.php文件或者在后台编辑function.php文件,参阅WordPress Gravatar头像加载速度方法
在文件最下面,【?>】之前写入

remove_action('wp_head','wp_shortlink_wp_head',10,0);
remove_action('template_redirect','wp_shortlink_header',11,0);

跟方法一效果一样。

其实我也不能确定wordpress短链接到底是否会影响百度的收录,只是个人不喜欢这个东西,也许有一天我会喜欢吧~
分享到: +More |