基于wp_remote_head函数,检测指定链接是否可以有效访问

通过wp_remote_head这个WordPress函数,我们可以制作一个检测链接是否有效的小插件。常见的用途比如,万能的wordpress最近正在筹划一个中文WordPress目录大全,收录所有基于WordPress程序搭建的网站,网友可以注册后免费提交网址。但这个里面就存在一个问题,例如如何确定用户提交的网站是基于WordPress?如果一段时间后,用户提交的网址已经失效,如何实现自动从目录中删除等等。当然这些操作都可以用手动检测来实现,但显然这是很笨的方法,也不符合万能的wordpress的定位,我们希望通过WordPress实现几乎所有的web应用。

上述两个问题通过这个函数就相对比较容易了。

第一个问题:绝大部分基于WordPress的网站,都有默认的一些可访问路径,例如后台地址就是 /wp-admin 等等。我们可以通过直接检测用户提交的网站后台地址是否可以链接来判断,当然可能会存在一些例外。

第二个问题:对于已经提交的网站,我们也可以通过定时检测的手段来实现及时排除失效的网站,具体方法不在此赘述。

//############################################################### 检测链接是否有效 无法访问返回:error 可访问返回:状态码 200、301、404等
function my_check_url($url, $timeout = 5) {

	$args = array('timeout' => $timeout, 'user-agent' => 'Mozilla/5.0 (compatible; Baiduspider/2.0;+http://www.baidu.com/search/spider.html)');
	$response = wp_remote_head($url, $args);

	// 超时、无法访问 返回 error
	if (is_wp_error($response)) {
		return 'error';

		//返回响应代码
	} else {
		return wp_remote_retrieve_response_code($response);
	}
}