Typecho 免插件统计浏览次数,输出热门文章

前提

好几年前我在打造SimpX主题的时候撸了下面的浏览次数统计代码。

/*
 * 获取浏览次数(改进版)
 */
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);
}

需求

这次在整poRebuild主题的时候发现原来的调用方式不太合适我这次的输出需求,改造成在themeInit函数里自动增加浏览次数,无论页面是否展示都能自动统计。当然了,还是利用自定义字段,不动数据库结构。

同时我新弄的主题还需要热门文章输出的功能,一并把代码撸了。

代码

此处内容已隐藏,回复后(需要填写邮箱)可见

最后

当然,别忘了你的主题或者插件新增了 views 字段,删掉

ALTER TABLE `typecho_contents` DROP `views`;
Typecho 统计 浏览 免插件
封面
打赏
相关推荐
  • Typecho蜘蛛来访记录插件"加强"加强版:RobotsPlusPlus

    本插件原名“Robots”,由 Shion 创建,可以记录搜索引擎蜘蛛的种类、爬行时间、爬行的页面、来源的IP。有利于监控站点的被蜘蛛抓取的情况,了解蜘蛛的习惯。可以为站点的SEO提供很多参考数据。由 YoviSun 修改升级后改名为 RobotsPlus 。但是年久失修。...
    2020-05-30 30 0 0
  • Typecho 完美实现文章置顶的思路

    目前我在Typecho圈里看见的文章置顶实现都是使用两个 Select,第一个Select是查询置顶的文章,第二个Select是查询剩余的文章。这样实现有BUG,而且也不优雅。置顶x篇文章首页文章数就变成 pageSize + x 了。我的方法就是添加一个用于排序的字段。法...
    2020-05-29 48 0 0
  • JS 实现 Typecho 后台提醒样式

    需求其实这个功能是因为我要给我的 Accessories 的操作加个操作结果提醒。代码代码是直接从Typecho源码里扣的。把下面的代码放到你的JS里。/** 消息提醒 来自 Typecho common-js.php */ function notice(noticeTe...
    2020-05-18 116 0 0

发表评论

;-) :| :smile: :sad: :razz: :oops: :o :lol: :grin: :cry: :cool: :???:

评论列表(暂无评论)