温馨提醒
如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢
本文最后更新于2023年12月26日,已超过 180天没有更新
将以下代码加入functions.php文件:
/* * 获取浏览次数 */ 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')) { $views = $views + 1; $widget->setField('views', 'str', strval($views), $widget->cid); } return str_replace("{views}", $views, $format); }
然后可以在需要统计浏览次数的页面,通过如下代码进行调用:
<?php _e(getViewsStr($this)); /* $this 是 Widget_Archive 对象 */ ?>
应用到主题后发现不太好,每刷新一次都会重复统计浏览次数,数字大了没什么用。
所以我就通过Cookies“记住”浏览过的文章,下次再访问就部统计了,以下的代码也是放到functions.php最后面:
/* * 获取浏览次数(改进版) */ 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); }
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论0+