热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

浅谈WordPress的Pingback和TrackBack机制及其优化

Pingback和TrackBack都是是博客系统中用来通知其他博客文章被引用情况的一种手段。它们使得博客作者可以追踪什么人链接至他的文章。WordPress这类高级博客平台具有自动pingback文章中所有的链接的功能(TrackBack需要手工添加链接,也就是说Pingback是博客系统自动像文中链接发送的,而Tr

PingbackTrackBack都是是博客系统中用来通知其他博客文章被引用情况的一种手段。它们使得博客作者可以追踪什么人链接至他的文章。WordPress这类高级博客平台具有自动pingback文章中所有的链接的功能(TrackBack需要手工添加链接,也就是说Pingback是博客系统自动像文中链接发送的,而TrackBack是博主手工添加需要发送TrackBack的链接,它们两者本质一样,都是基于XML-PRC,都是发送ping,至于两种ping有啥区别,就不清楚了)。

  • 在后台的?设置》讨论里可以设置“尝试通知文章中链接到的所有博客”,WordPress就会在文章发布时自动ping文章中所有的链接。第二个选项设置是否接受来自外部的Pingback和TrackBack。

20110602010413

  • 如果除了文章中提到的链接外,你还想向一个“额外”的链接发送Ping,那么在文章撰写页面的TrackBack框内填写地址:

20110602012616

  • WordPress接收到了Pingback/TrackBack,会当成评论,自动截取摘要和众多评论显示在一起。(WordPress默认把一下三种类型的“东西”当做评论:comment(访客在留言框里的留言)、pingback、trackback)。通过修改代码,可以让评论区域只显示comment,在其他区域单独显示pingback、trackback。

20110602014102

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


推荐阅读
author-avatar
QK丫头419QJ
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有