森七

实现emlog网站信息统计的代码
有时候想在网页中向访客展示emlog博客的文章数量、评论数量、运行时间等信息,但emlog后台侧边栏没有提供相关的...
扫描右侧二维码阅读全文
18
2017/06

实现emlog网站信息统计的代码

有时候想在网页中向访客展示emlog博客的文章数量、评论数量、运行时间等信息,但emlog后台侧边栏没有提供相关的模块,因此需要博主自主添加博客统计信息代码。下面是博客吧整理的emlog网站信息统计代码,已在emlog 5.3.x上测试可用。

调用代码:

方法一:官方缓存类统计代码。优点:加载速度快;缺点:可能信息更新不及时。
把以下代码添加到当前使用的主题模板文件中,如side.php文件:

<?php $sta_cache = Cache::getInstance()->readCache('sta'); /*必须添加*/ ?>
<ul>
    <li>文章总数:<?php echo $sta_cache['lognum']; ?> 篇</li>
    <li>评论总数:<?php echo $sta_cache['comnum_all']; ?> 条</li>
    <li>闲言碎语:<?php echo $sta_cache['twnum']; ?>条</li>        
    <li>网站运行:<?php echo floor((time()-strtotime(20160423))/86400); ?> 天</li>    

附:$sta_cache[‘参数’]中的参数可选如下:
lognum游客可见日志总数
draftnum草稿,也就是隐藏文件数量
comnum未隐藏的评论数量
comnum_all所有评论数量
hidecomnum被隐藏的评论数量
twnum微语数量
checknum未审核的文章数量
方法二:自编函数,通过SQL语句查询相关数据。缺点:加载速度较缓存类慢;优点:实时显示
把下面的代码添加到主题的module.php文件中:

<?php
    //统计文章总数
    function count_log_all(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE type = 'blog'");
        return $data['total'];
    }
 
    //置顶文章数
    function count_log_top(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE  top = 'y' or sortop = 'y' AND type = 'blog'");
        return $data['total'];
    }
    //隐藏文章数
    function count_log_hide(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE hide = 'y' AND type = 'blog'");
        return $data['total'];
    }
 
    //未审核文章数
    function count_log_check(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE checked = 'n' AND type = 'blog'");
        return $data['total'];
    }
 
    //加密文章数
    function count_log_pass(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE  password !='' AND type = 'blog'");
        return $data['total'];
    }
 
    //统计页面总数
    function count_page_all(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "blog WHERE type = 'page'");
        return $data['total'];
    }
 
    //统计评论总数
    function count_com_all(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "comment");
        return $data['total'];
    }
    //统计友链总数
    function count_link_all(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "link");
        return $data['total'];
    }
 
    //统计微语评论总数
    function count_treply_all(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "reply");
        return $data['total'];
    }
 
    //统计分类总数
    function count_sort_all(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "sort");
        return $data['total'];
    }
 
    //统计子分类数
    function count_sort_mod(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "sort WHERE pid != 0");
        return $data['total'];
    }
 
    //统计标签总数
    function count_tag_all(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "tag");
        return $data['total'];
    }
 
    //统计微语总数
    function count_tw_all(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "twitter");
        return $data['total'];
    }
 
    //统计用户总数
    function count_user_all(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "user");
        return $data['total'];
    }
 
    //统计管理员总数
    function count_user_admin(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "user WHERE role = 'admin'");
        return $data['total'];
    }
 
    //统计作者总数
    function count_user_writer(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "user WHERE role = 'writer'");
        return $data['total'];
    }
 
    //统计附件总数
    function count_att_all(){
        $db = MySql::getInstance();
        $data = $db->once_fetch_array("SELECT COUNT(*) AS total FROM " . DB_PREFIX . "attachment");
        return $data['total'];
    }
 
    //最后发表文章时间 
    function last_post_log(){
        $db = MySql::getInstance();
        $sql = "SELECT * FROM " . DB_PREFIX . "blog WHERE type='blog' ORDER BY date DESC LIMIT 0,1";
        $res = $db->query($sql);
        $row = $db->fetch_array($res);
        $date = date('Y-n-j H:i',$row['date']);
        return $date;       
    };
?>

调用代码:

  • 文章总数:<?php echo count_log_all();?>
  • 置顶文章:<?php echo count_log_top();?>
  • 隐藏文章:<?php echo count_log_hide();?>
  • 待审文章:<?php echo count_log_check();?>
  • 加密文章:<?php echo count_log_pass();?>
  • 页面总数:<?php echo count_page_all();?>
  • 评论总数:<?php echo count_com_all();?>
  • 友链总数:<?php echo count_link_all();?>
  • 微语评论:<?php echo count_treply_all();?>
  • 分类总数:<?php echo count_sort_all();?>
  • 子分类数:<?php echo count_sort_mod();?>
  • 标签总数:<?php echo count_tag_all();?>
  • 微语总数:<?php echo count_tw_all();?>
  • 用户总数:<?php echo count_user_all();?>
  • 管理员数:<?php echo count_user_admin();?>
  • 作者总数:<?php echo count_user_writer();?>
  • 附件总数:<?php echo count_att_all();?>
  • 最后更新:<?php echo last_post_log();?>
阿里云广告
Last modification:February 9th, 2019 at 10:30 pm
If you think my article is useful to you, please feel free to appreciate

Leave a Comment

3 comments

  1. 小杰

    不错的教程

  2. 和wp的不一样

    1. 森七
      @我

      @我:嗯,因为本身代码就不同嘛