作者:QK丫头419QJ | 来源:互联网 | 2014-05-16 09:58
Pingback和TrackBack都是是博客系统中用来通知其他博客文章被引用情况的一种手段。它们使得博客作者可以追踪什么人链接至他的文章。WordPress这类高级博客平台具有自动pingback文章中所有的链接的功能(TrackBack需要手工添加链接,也就是说Pingback是博客系统自动像文中链接发送的,而Tr
Pingback和TrackBack都是是博客系统中用来通知其他博客文章被引用情况的一种手段。它们使得博客作者可以追踪什么人链接至他的文章。WordPress这类高级博客平台具有自动pingback文章中所有的链接的功能(TrackBack需要手工添加链接,也就是说Pingback是博客系统自动像文中链接发送的,而TrackBack是博主手工添加需要发送TrackBack的链接,它们两者本质一样,都是基于XML-PRC,都是发送ping,至于两种ping有啥区别,就不清楚了)。
- 在后台的?设置》讨论里可以设置“尝试通知文章中链接到的所有博客”,WordPress就会在文章发布时自动ping文章中所有的链接。第二个选项设置是否接受来自外部的Pingback和TrackBack。
- 如果除了文章中提到的链接外,你还想向一个“额外”的链接发送Ping,那么在文章撰写页面的TrackBack框内填写地址:
- WordPress接收到了Pingback/TrackBack,会当成评论,自动截取摘要和众多评论显示在一起。(WordPress默认把一下三种类型的“东西”当做评论:comment(访客在留言框里的留言)、pingback、trackback)。通过修改代码,可以让评论区域只显示comment,在其他区域单独显示pingback、trackback。
Pingback和TrackBack这两种机制,相辅相成,通通过发送ping,通知被引用的站点:“我的这篇文章引用/参考了你的这篇文章”,从而增加了站点间的互动。
说了这么多Pingback和TrackBack的原理,不得不提到一个比较出名的Pingback机制的优化技巧(hack):
WordPress会自动ping文章中所有的链接,包括内链,比如在博客的B文章中提及A文章并带有链接,那么B文章发布时也会“不假思索”地向A文章发送ping,A文章的评论区域随即出现一个pingback类型的评论,这样的评论没有任何实际意义。
那么如何让WordPress不要ping文章中包含的内链呢?可以使用一个叫做No Self Pings的插件,如果不喜欢插件可以使用下面一段代码:
// 在functions.php里添加以下代码:
function no_self_ping( &$links ) {
$home = get_option( 'home' );
foreach ( $links as $l => $link )
if ( 0 === strpos( $link, $home ) )
unset($links[$l]);
}
add_action( 'pre_ping', 'no_self_ping' );
这段代码其实是No Self Pings插件的核心代码。
更多关于Pingback的知识,可参考:http://zh.wikipedia.org/wiki/Pingback