预计阅读时间: 4 分钟

什么是 Trackbacks

Trackbacks 是 Web 2.0 发展初期的产物,你在自己的博客引用别人的日志,那么在发表完日志之后,对方的博客就会自动在你所引用的日志评论区添加你的引用信息,其他人就可以很清楚看到你的引用,并且方便地点击就可以来看你的文章,所以 Trackbacks 就成为了博客之间一种通讯的机制和协议,可以看到别人是如何看待自己的日志。

WordPress 还使用 Pingbacks 机制,使用户不必输入 Trackbacks 地址就能实现 Trackbacks,使用上更加方便。另外 Trackbacks 功能还能让你看到谁链接了你的博客(当然也包括抄袭者)。

但是 Trackbacks 实际用途并没有按照当初设计那样被要用于博客间交流,更多的是被滥用,Spamer 利用只要知道日志的 Trackbacks 地址就可以发送 Trackbacks 这一漏洞,频发 Trackbacks,并且 Akismet 也经常漏掉,如果不慎其烦的话,就可以关闭 WordPress 的 Trackbacks。

如何彻底关闭 Trackbacks

关闭 Trackbacks 首先需要到 WordPress 后台,Setting(设置)-> Discussion(评论设置)中,把 Allow link notifications from other blogs (pingbacks and trackbacks.) (允许接受来自其它 Blog 的链接通告(包括引用和通告) )这一项取消。

但是 WordPress 的每篇日志是否接受 Trackbacks 是单独设置的,所以你如果你需要把以前的日志的 Trackbacks 也关闭,你需要 PHPMyAdmin 中执行下面这条 SQL。


UPDATE `wp_posts` SET ping_status="closed";

如果你的主机没有提供 PHPMyAdmin 这个 MySQL 工具,你可以直接安装一个 WP-phpMyAdmin 直接在 WordPress 后台使用 PHPMyAdmin。

也可以在 WordPress 当前主题的 functions.php 加入下面代码,使得 Trackback 功能彻底失效。


//彻底关闭 pingback
add_filter('xmlrpc_methods',function($methods){
	$methods['pingback.ping'] = '__return_false';
	$methods['pingback.extensions.getPingbacks'] = '__return_false';
	return $methods;
});

//禁用 pingbacks, enclosures, trackbacks
remove_action( 'do_pings', 'do_all_pings', 10 );

//去掉 _encloseme 和 do_ping 操作。
remove_action( 'publish_post','_publish_post_hook',5 );
此文章对你有帮助吗? 已有 0 人说这篇文章是有用的。