在侧边栏里追加网站的被收录数量

所有的站长基本上都很关注自己网页的收录量。但是每次都需要去工具网站查询。

所以我写了这个功能。当然 我也不知道百度能让用多久。

效果如三叔博客的侧边栏:

https://wenda.wecenter.com/uploads/article/20210610/957559ef269aaf4220d0db9482e4f020.png

这样我在自己的博客首页就知道这个信息了。


具体的操作如下:

1. 在/app/explore/main.php的 index_action里追加代码。

if (TPL::is_output('block/sidebar_baidupcshoulu.tpl.htm', 'explore/index'))
{
$count = '未知';
$result_cache_key = 'baidupcshoulu'.date("Y-m-d");
if (!$count = AWS_APP::cache()->get($result_cache_key)){
$res = curl_get_contents('https://www.baidu.com/s?wd=site%3Awww.sanshu.cn&rsv_spt=1&rsv_iqid=0xe106800100008920&issp=1&f=8&rsv_bp=1&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_dl=ib&rsv_n=2&rsv_sug3=1&rsv_sug2=0&rsv_btype=i&inputT=438&rsv_sug4=438', $timeout = 30);
preg_match_all('/]+style[^>]+>(.*)<\/b>/', $res, $match);
$count = $match[1][0];
AWS_APP::cache()->set($result_cache_key, $count, 60*60*12); //缓存时间是秒
}
TPL::assign('baidushoulu', $count);
}
[^>



这里主要做了三个操作:

  1. 首页又没有加载统计模板
  2. 缓存里有没有缓存数量(这个最多每天统计一次即可)
  3. 如果缓存没有 就请求百度 并且获取收录数量,最后放到缓存里。记得将百度网址里的 sanshu.cn换成自己的域名


然后。

创建模板 /views/default/block/sidebar_baidupcshoulu.tpl.htm

里面的代码自己写(可以复制其他控件的代码,自己改下)。

三叔的是:


今日百度页面总收录:


baidushoulu; ?>


最后,在首页模板 /views/explore/index.tpl.htm 里引用收录组件.具体位置自己组织哈。

最后大功告成!

如有更好的解决方案,请赐教。

1 个评论

如果是文章页显示。 要把百度请求代码copy到 app/arcticle/index_action里 里面的if (TPL::is_output('block/sidebar_baidupcshoulu.tpl.htm', 'explore/index')) 要把 explore/index 改为 article/index

要回复文章请先登录注册