很多网站都有这样的功能,可以显示自己在这个网站上浏览了哪些页面,这就是用户浏览记录。如下图:那么怎么制作这样的用户浏览记录列表功能呢?下面就来分享一下 WordPress 网站怎么制作用户浏览记录功能。
首先让我们了解一下它的原理:用户在网站上浏览的页面信息,都会保存到 COOKIE 里,我们要显示浏览记录,只需要通过代码把缓存里的信息取出来就可以了。这与制作网站添加历史浏览记录文章列表功能类似。
具体代码如下:
第一步:将以下的函数放到自己的模板 functions.php 里;
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
- <?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 记录,然后显示出来。
评论前必须登录!
注册