效果:
以typecho博客为列:
- 文件路径:网站根目录/usr/themes/模板名/function.php,建议修改前先做个备份。
直接在最尾巴或者合适的位置添加以下代码:
//判断内容页是否百度收录
function baidu_record() {
$url='http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
if(checkBaidu($url)==1)
{echo "百度已收录";
}
else
{echo "<a style=\"color:red;\" rel=\"external nofollow\" title=\"点击提交收录!\" target=\"_blank\"
href=\"http://zhanzhang.baidu.com/sitesubmit/index?sitename=$url\">百度未收录</a>";}
}
function checkBaidu($url)
{
$url = 'http://www.baidu.com/s?wd=' . urlencode($url);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$rs = curl_exec($curl);
curl_close($curl);
if (!strpos($rs, '没有找到')) { //没有找到说明已被百度收录
return 1;
} else {
return -1;
}
}
- 文件路径:网站根目录/usr/themes/模板名/post.php,同样建议修改前先做个备份。
可以在页面标题下方(如本站)或者你要展示的位置添加以下代码:
<span class="baidu-record">百度收录:<?php echo baidu_record() ?>
</span>
可以根据需要自己调整下样式。 保存后或者上传后,清理浏览器缓存,即可看到效果。
原理:
Typecho检测文章是否被百度收录,直接点的说,这个功能是从Wordpress魔改的,一开始用的是每个文章都直接检测一次,那么代码就很简单了,直接拿着URL去百度搜索里面找,根据结果,找到里面是否存在“没有找到”等字眼,若存在说明未收录,反之则收录了。