历史记录是一个相对私密的功能,关键是将服务项目展示给当前用户。不同的用户使用不同的终端设备可以看到不同的结果,不同的用户无法共享资源来维护自己访问记录的私密性。一般来说,我们有以下几种完成的想法。
COOKIE记录
会话记录
数据库记录
缓存文件记录
从技术层面来说,第一种和第二种方法都很简单。因此,下面将以COOKIE作为记录方法来完成编码。其中,第一种、第二种、第四种方法的思路基本相同,即根据用户浏览某个网页时,某个COOKIE或某个特殊名称的会话或缓存文件的递增值,在其中记录当前的URL或唯一识别码。在应用中,只需要启用缓存文件中的名称或值的COOKIE或会话,就可以连接和枚举匹配的新项。
一般数据库记录方式需要用户先申请注册。申请注册后,整个录制过程同上。当页面被访问时,与该URL或网页匹配的唯一识别码被存储在与用户ID匹配的数据库字段名称或表格中。在应用中,可以根据数据库视图启用该值。这种方法与前一种不同。存储在数据库中的记录是永久的,不容易因为COOKIE或缓存文件过期而丢失。也可以跨终端设备使用,即可以在不同的电脑上启用。
在wordpress中,每个人在浏览文章内容时都会根据一些钩子记录文章内容的ID。
复制代码编码如下:
Add_Action('WP','HistoryReadCookieInit',10);
函数HistoryReadCookieInit(){
if(is_single()){
global$post;
if(isset($_COOKIE['history-read-posts'])&;&!空($_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);
}
}
在录制的情况下,必须对已经录制好的文章的内容ID进行简单的计算,这样才能保证COOKIE中只有一个ID并且不重复。并按照大家浏览的时间排列这篇文章的内容ID(最后浏览的在最上面)。
在应用程序的情况下,您可以应用以下代码并立即启用记录的ID。
复制下面的代码:
if(!isset($_COOKIE['history-read-posts'])||empty($_COOKIE['history-read-posts']))return;
$history_read_posts=trim($_COOKIE['history-read-posts']);
$history_read_posts=array_unique(array_filter(explode(',',$history_read_posts,$count));
foreach($history_read_postsas$key=>;$p){
$get_post=get_post($p);
echo'<;李><ahref=""。'get_permalink($p)。'“标题=”。get_the_title($p)。”"target="_blank">。get_the_title($p)。”</a>;</李>;
}
这种方法最立竿见影,最合理,也容易理解。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)