WordPress网站怎么制作用户浏览历史记录功能
很多网站都有这样的功能,可以显示自己在这个网站上浏览了哪些页面,这就是用户浏览记录。如下图:
那么怎么制作这样的用户浏览记录列表功能呢?下面学做网站论坛就来分享一下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记录,然后显示出来。