因为主题模板的差异性,在我们制作或者修改的过程中可能会遇到想要调用文章总数、页面总数等相关统计信息,zblog官方wiki是没有现成的标签的,别问,问就是佩奇(猪)比较懒。
然鹅在zblog后台首页“站点信息”也有信息调用,在百度看了需要教程之后大概统计下有以下几种方案可行,代码如下;
方案1
代码语言:javascript复制function 主题ID_GetCount($total) {
global $zbp;
//文章数量{主题ID_GetCount('article')}
if ($total == 'article')
$s = $zbp->db->sql->Count(
$zbp->table['Post'],
array(array('COUNT', 'log_ID', 'num')),
array(array('=', 'log_Type', 0), array('=', 'log_Status', 0))
);
//获取总共评论的数量{主题ID_GetCount('comment')}
if ($total == 'comment')
$s = $zbp->db->sql->Count(
$zbp->table['Comment'],
array(array('COUNT', 'comm_ID', 'num')),
array(array('=', 'comm_IsChecking', 0))
);
//获取标签数量{主题ID_GetCount('tag')}
if ($total == 'tag')
$s = $zbp->db->sql->Count(
$zbp->table['Tag'],
array(array('COUNT', 'tag_ID', 'num')),
null
);
//获取置顶数量{主题ID_GetCount('istop')}
if ($total == 'istop')
$s = $zbp->db->sql->Count(
$zbp->table['Post'],
array(array('COUNT', 'log_ID', 'num')),
array(array('=', 'log_Type', 0), array('=', 'log_IsTop', 1),array('=', 'log_Status', 0))
);
$s = GetValueInArrayByCurrent($zbp->db->Query($s), 'num');
return $s;
}
除此之外天兴大佬在自己的博客也发布了一些调用统计数量的代码:
方案2
代码语言:javascript复制文章总数:{$zbp->cache->all_article_nums}
页面总数:{$zbp->cache->all_page_nums}
标签总数:{$zbp->cache->all_tags_nums} <!--无效-->
浏览总数:{$zbp->cache->all_views_nums} <!--无效-->
评论总数:{$zbp->cache->all_comments_nums} <!--无效-->
不知道为什么啊,可能是ZBP版本不同所以标签、浏览、评论我用的时候是无效的。不知道什么原因导致。
还有一种方案也是我目前在用的,代码如下:
方案3
代码语言:javascript复制//站点信息
function 主题ID_all_views() {
//总访问量
global $zbp;
$all_views = GetValueInArrayByCurrent($zbp->db->Query('SELECT SUM(log_ViewNums) AS num FROM ' . $GLOBALS['table']['Post']), 'num');
return $all_views;
}
function 主题ID_all_artiles() {
//文章总数
global $zbp;
$all_artiles = GetValueInArrayByCurrent($zbp->db->Query('SELECT COUNT(*) AS num FROM ' . $GLOBALS['table']['Post'] . ' WHERE log_Type='0''), 'num');
return $all_artiles;
}
function 主题ID_all_comments() {
//评论总数
global $zbp;
$all_comments = $zbp->cache->all_comment_nums;
return $all_comments;
}
至于选择使用哪种方案自己决定吧,先收藏再说,免得以后需要时找不着!
最后感谢各位大佬的无私奉献,像你们致敬~~~