很多网站都有这样的功能,可以显示自己在这个网站上浏览了哪些页面,这就是用户浏览记录。如下图:那么怎么制作这样的用户浏览记录列表功能呢?下面就来分享一下 WordPress 网站怎么制作用户浏览记录功能。
首先让我们了解一下它的原理:用户在网站上浏览的页面信息,都会保存到 COOKIE 里,我们要显示浏览记录,只需要通过代码把缓存里的信息取出来就可以了。这与制作网站添加历史浏览记录文章列表功能类似。
具体代码如下:
第一步:将以下的函数放到自己的模板 functions.php 里;
//浏览记录 add_action('wp','HistoryReadCookieInit',10); function HistoryReadCookieInit(){ if(is_single()){ global $post; if(isset($_COOKIE['history-read-posts']) && !empty($_COOKIE['history-read-posts']))$history_read_posts = trim($_COOKIE['history-read-posts']); else $history_read_posts = ''; $post_id = $post->ID; if(strpos($history_read_posts,$post_id.',') === 0){ $history_read_posts = str_replace($post_id.',','',$history_read_posts); }elseif(strpos($history_read_posts,$post_id.',') > 0){ $history_read_posts = str_replace(','.$post_id.',',',',$history_read_posts); } $history_read_posts = $post_id.','.$history_read_posts; setcookie('history-read-posts',$history_read_posts,time()+315360000,COOKIEPATH,COOKIE_DOMAIN,false); } }
第二步:使用以下的循环代码来显示用户浏览历史记录列表;
<?php $history_read_posts = trim($_COOKIE['history-read-posts']); $history_read_posts = array_unique(explode(',',$history_read_posts),SORT_REGULAR); foreach($history_read_posts as $key => $p){ <li><a href="<?php echo get_permalink($p); ?>" target="_blank" rel="nofollow"><?php echo get_post($p)->post_title; ?></a></li> }?>
将上面的代码放到显示用户浏览记录的位置即可,通过上面的代码就可以取出 COOKIE 记录,然后显示出来。
本文作者为许都,未经作者授权,禁止转载。
查看图片
直接粘贴就这样了,的确会出错。但我还看不出来为什么,哈哈。