[转载]Typecho免插件实现文章浏览次数统计(Cookie Enabled)

模板开发以及发布测试

版主: seita

[转载]Typecho免插件实现文章浏览次数统计(Cookie Enabled)

帖子ClayMore » 2017年 11月 9日 18:30


最近在打造新主题,想给主题增加统计功能,为了不使用Views插件,撸了下面的代码,使用自定义字段保存数据,不会改动数据库结构
代码: 全选
/*
 * 获取浏览次数(改进版)
 */
function getViewsStr($widget, $format = "{views} 次浏览") {
    $fields = unserialize($widget->fields);
    if (array_key_exists('views', $fields))
        $views = (!empty($fields['views'])) ? intval($fields['views']) : 0;
    else
        $views = 0;
   
    //增加浏览次数
    if ($widget->is('single')) {
        $vieweds = Typecho_Cookie::get('contents_viewed');
        if (empty($vieweds))
            $vieweds = array();
        else
            $vieweds = explode(',', $vieweds);
        if (!in_array($widget->cid, $vieweds)) {
            $views = $views + 1;
            $widget->setField('views', 'str', strval($views), $widget->cid);
            $vieweds[] = $widget->cid;
            $vieweds = implode(',', $vieweds);
            Typecho_Cookie::set("contents_viewed",$vieweds);
        }
    }
    return str_replace("{views}", $views, $format);
}

把以上代码放到functions.php最后,然后就可以在各个页面通过
代码: 全选
<?php _e(getViewsStr($this)); /* $this 是 Widget_Archive 对象 */ ?>

输出统计次数。
头像
ClayMore
 
帖子: 1754
注册: 2007年 11月 29日 02:55

Re: [转载]Typecho免插件实现文章浏览次数统计(Cookie Enabled)

帖子夏目贵志 » 2018年 3月 31日 12:59

mark!
头像
夏目贵志
 
帖子: 78
注册: 2016年 4月 18日 22:08
地址: https://xiamuyourenzhang.cn/


回到 模板

在线用户

正在浏览此版面的用户:Baidu [Spider], Bing [Bot] 和 7 位游客