Ping应用与拓展——No Self Pings

7 0

Ping应用与历史

Ping,除了指Windows系统中检查网络连接的工具,在Web2.0中,Ping常用来通知被引用的内容来源或通知搜索引擎文章的更新。例如WPCEO先发布了一篇文章《Ping应用与拓展——No Self Pings》,某位网友想引用其中的内容,则可以在WordPress中发送trackback给WPCEO,WPCEO就知道这位网友引用了这篇文章的内容了。

有时候,我可能需要引用本博客以前发过的某篇文章,WordPress也会发Ping给该文章,而trackback会以评论的形式存在在评论列表中,这往往不是我们需要的效果。

Ping拓展——No Self Pings

结合WordPress强大的Filter功能,我们可以让WordPress在发送Ping通知时,不再通知本站的文章。No Self Pings是一个简单的WordPress插件,它可以达到这样的效果。

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' );

以上是这个插件的全部PHP代码。我们可以从中分析得出,在pre_ping这个Hook中,加入自己的过滤函数no_self_ping,通过no_self_ping函数,对需要Ping的每个连接,通过PHP函数strpos判断与本站的首页即$home = get_option( 'home' );与需要Ping的URL开头是否相同,从而判断是否属于本站链接。如果为本站链接,则从待Ping列表中删除。

分类:WordPress开发 | 标签:, , ,

5 Responses to Ping应用与拓展——No Self Pings

  1. Sivan says:

    加到主题里,嗯嗯。哈哈。

  2. CodeCTO says:

    能不能从源头kill掉,在 publish post 时就防止这种 ping 发送出去?

  3. 何苦呢 says:

    这个插件 每次装wordpress都装这个

  4. llsilver says:

    全站禁ping,这玩意也就用不着了。

Leave a Reply

Your email address will not be published. Required fields are marked *