调用最近浏览过的文章,比较蛋疼的功能,原理是通过读取浏览器cookie文件,调用显示最近(360天)被访问过的10篇文章 ,需要注意的是,该功能不是统计所有浏览者最近查看过的文章,并没有写进数据库中,每个访客都有自己独有的浏览清单。
将下面代码添加到主题functions.php文件的最后:
- <?php
- /* 可选参数: */
- $zg_cookie_expire = 360; // cookie过期时间,默认值是360天
- $zg_number_of_posts = 10; // 显示篇数,默认值是10。
- $zg_recognize_pages = true;
- /* 此行后不要编辑 */
- function zg_lwp_header() {
- if (is_single()) {
- zg_lw_setcookie();
- } elseif (is_page()) {
- global$zg_recognize_pages;
- if ($zg_recognize_pages === true) {
- zg_lw_setcookie();
- }
- }
- }
- function zg_lw_setcookie() {
- global$wp_query;
- $zg_post_ID = $wp_query->post->ID;
- if (! isset($_COOKIE["WP-LastViewedPosts"])) {
- $zg_cookiearray = array($zg_post_ID);
- } else {
- $zg_cookiearray = unserialize(preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", stripslashes($_COOKIE["WP-LastViewedPosts"])));
- if (! is_array($zg_cookiearray)) {
- $zg_cookiearray = array($zg_post_ID);
- }
- }
- if (in_array($zg_post_ID, $zg_cookiearray)) {
- $zg_key = array_search($zg_post_ID, $zg_cookiearray);
- array_splice($zg_cookiearray, $zg_key, 1);
- }
- array_unshift($zg_cookiearray, $zg_post_ID);
- global$zg_number_of_posts;
- while (count($zg_cookiearray) > $zg_number_of_posts) {
- array_pop($zg_cookiearray);
- }
- $zg_blog_url_array = parse_url(get_bloginfo('url'));
- $zg_blog_url = $zg_blog_url_array['host'];
- $zg_blog_url = str_replace('www.', '', $zg_blog_url);
- $zg_blog_url_dot = '.';
- $zg_blog_url_dot .= $zg_blog_url;
- $zg_path_url = $zg_blog_url_array['path'];
- $zg_path_url_slash = '/';
- $zg_path_url .= $zg_path_url_slash;
- global$zg_cookie_expire;
- setcookie("WP-LastViewedPosts", serialize($zg_cookiearray), (time()+($zg_cookie_expire*86400)), $zg_path_url, $zg_blog_url_dot, 0);
- }
- function zg_recently_viewed() {
- echo '<ul class="viewed_posts">';
- if (isset($_COOKIE["WP-LastViewedPosts"])) {
- $zg_post_IDs = unserialize(preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", stripslashes($_COOKIE["WP-LastViewedPosts"])));
- foreach ($zg_post_IDsas$value) {
- global$wpdb;
- $zg_get_title = $wpdb->get_results("SELECT post_title FROM $wpdb->posts WHERE ID = '$value+0' LIMIT 1");
- foreach($zg_get_titleas$zg_title_out) {
- echo"<li><a href=\"". get_permalink($value+0) . "\" title=\"". $zg_title_out->post_title . "\">". $zg_title_out->post_title . "</a></li>\n";
- }
- }
- } else {
- }
- echo '</ul>';
- }
- add_action('get_header','zg_lwp_header');
- ?>
由于代码高亮转换后代码可能执行有误,这里提供 源文件下载
调用方法,在侧边sidebar模版或者正文single模版适当位置加入下面代码;
- <?php if (function_exists('zg_recently_viewed')): if (isset($_COOKIE["WP-LastViewedPosts"])) { ?>
- <h2>Last viewed posts</h2>
- <?php zg_recently_viewed(); ?>
- <?php } endif; ?>
注:调用并不十分准确,有一定误差,效果看本站正文最后。
最后说明一下,代码提取自:Last Viewed Posts 插件,如果嫌折腾麻烦,可以直接安装并启用该插件,使用更为方便,可以直接将该功能拖到侧边小工具中。
本站文章大部分为原创,用于个人学习记录,可能对您有所帮助,仅供参考!
我的微信
微信号已复制
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
黑龙江省牡丹江市 1F
沙发
江西省吉安市 2F
代码控,强大,对于需要该功能的人来说很不错~
河南省 3F
这个貌似很实用。看一下
江西省新余市 4F
这个可以有。
山东省济南市 5F
浏览器禁用cookies追踪了
广东省广州市 6F
这功能还不错。。。
不过像我的话就很少会回头去看文章了。
河南省安阳市 7F
鸟哥,我为什么添加后,刷新IE后会说function出错。
中国 B1
@ 岳璐璐 复制的代码可能有问题,下载本文提供的源文件
河南省安阳市 B2
@ 知更鸟 @知更鸟 : 您提供的下载链接为:QTTabBar 2.0.zip,打开后不是function文件中的内容呀,是不是鸟哥上传错误了。如果我说错了,问鸟哥,提供的附件如何用?
中国 B3
@ 岳璐璐 嗯,下载链接已修正,里面就是上面贴的代码,使用方法参照本文
河南省安阳市 B2
@ 知更鸟 希望鸟哥能直接提供下function.php文件
山东省泰安市 8F
鸟哥就是牛啊,这么好用的代码也放出来。
河南省安阳市 9F
setcookie(“WP-LastViewedPosts”, serialize($zg_cookiearray), (time()+($zg_cookie_expire*86400)), $zg_path_url, $zg_blog_url_dot, 0);
这行还是会报错。好吧,我承认我玩不了这些代码。
宁夏银川市 10F
再一次表示关注!!!
福建省福州市 11F
暂时没想到用在什么地方,不过大部分人不会回头看浏览过的文章吧!
江苏省苏州市昆山市 12F
不错,这个很有用。已经成功移植在自己的主题中了
山东省泰安市 13F
鸟哥,我的摘要里面还是有乱码,解决好久了,都不行。您看下。。。
中国 B1
@ 每日精华帖 虽然你去掉我的版权链接,不过看你都叫哥了,就告诉你:
之所以有乱码是因为主机问题,至于主机空间缺少什么组件或者需要设置什么,哥还真想不起来了…
河北省秦皇岛市 B2
@ 知更鸟 膜拜鸟哥 不解释!
山东省泰安市 B2
@ 知更鸟 鸟哥,谢谢您。版权链接的什么东西,我都不懂。这个博客是朋友给我的,拿来就是这个样子。
山东省 14F
前排啊~~~
江苏省苏州市 15F
有机会试一试
浙江省杭州市 16F
这个我喜欢,支持鸟哥,给力呀!我都是照葫芦画瓢的用着!不过我不会一行显示两条!
广东省茂名市 17F
这个还真不好弄!
河南省郑州市 18F
现在都注重隐私,记录别人浏览内容容易引起反感。
浙江省杭州市 B1
@ 贝游记 这个貌似只有自己能看到,别的人看不见的哦!
上海市 19F
这个功能很不错,一会试试。。感谢鸟哥。
福建省福州市 20F
这个功能有时候还是很实用的,有空试试。
浙江省宁波市 21F
我用你代码 怎么显示的的不一样 我是显示的一行 我也用你的主题 是不是要在css 里加点什么
广东省揭阳市 22F
貌视很强大
江苏省苏州市 23F
不错。。
安徽省芜湖市 24F
这个功能很不错,收藏了
广东省东莞市 25F
这一串代码真有意思
贵州省 26F
好功能