wordpress實現(xiàn)用戶歷史閱讀記錄功能分享
COOKIE記錄
SESSION記錄
數(shù)據(jù)庫記錄
緩存文件記錄
從技術(shù)難度上,第1、2種方法最簡單,因此,下文將實現(xiàn)以COOKIE為記錄方法的實現(xiàn)代碼。其中第1、2、4種方法思路基本相同,即通過在用戶訪問某個頁面時,通過對某個特定名稱的COOKIE或SESSION或緩存文件中增加值,把當(dāng)前URL或唯一標(biāo)識碼記錄其中,而在使用時,只需要調(diào)用該名稱的COOKIE或SESSION或緩存文件中的值,并把對應(yīng)的項目鏈接列出即可。
而數(shù)據(jù)庫記錄方法一般需要用戶先注冊,注冊之后記錄過程同上,在訪問頁面時,將這個URL或頁面對應(yīng)的唯一標(biāo)識碼存入用戶ID對應(yīng)的某個數(shù)據(jù)庫字段或表中,在使用時,通過數(shù)據(jù)庫查詢把這些值調(diào)用出來即可。這種方法不同于前一種,存入數(shù)據(jù)庫的記錄是永久不會丟失的,不會由于COOKIE或緩存過期而丟失,也可以實現(xiàn)跨終端,即在不同的電腦上也可以調(diào)用。
在wordpress中,我們通過一些鉤子來實現(xiàn)訪問文章時把該文章的ID記錄下來。
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);
}
}
在記錄的時候,我們需要對已經(jīng)被記錄的文章ID做一個簡單的運算,保證COOKIE中只有一個ID,不重復(fù)。并按照我們訪問的時間來對這些文章ID排序(最后訪問的排在最前)。
在使用的時候,我們使用下面的代碼,直接調(diào)用這些被記錄的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_posts as $key => $p){
$get_post = get_post($p);
echo '<li><a href="'.get_permalink($p).'" title="'.get_the_title($p).'" target="_blank">'.get_the_title($p).'</a></li>';
}
這種方法最直接有效,而且理解起來非常容易。
上一篇:WordPress中讓W(xué)idget 標(biāo)題支持簡單的HTML標(biāo)簽
欄 目:WordPress
本文標(biāo)題:wordpress實現(xiàn)用戶歷史閱讀記錄功能分享
本文地址:http://mengdiqiu.com.cn/a1/WordPress/12791.html
您可能感興趣的文章
- 05-31wordpress修改后臺登錄地址教程
- 05-31WordPress自定義用戶頭像實現(xiàn)代碼
- 01-11修改wordpress上傳臨時目錄解決wordpress無法安裝插件包的方法
- 01-11WordPress增加文章排序方式
- 01-11自己做wordpress評論插件修改評論樣式(兩步美化評論內(nèi)容)
- 01-11wordpress get
- 01-11wordpress獲取文章評論數(shù)過濾掉作者代碼分享
- 01-11在wordpress文章末尾添加內(nèi)容的簡單方法
- 01-11不用wordpress插件顯示文章瀏覽統(tǒng)計功能代碼修改(原理分析)
- 01-11wordpress dynamic


閱讀排行
本欄相關(guān)
- 05-31wordpress修改后臺登錄地址教程
- 05-31WordPress自定義用戶頭像實現(xiàn)代碼
- 01-11WordPress增加文章排序方式
- 01-11修改wordpress上傳臨時目錄解決wordpre
- 01-11wordpress get
- 01-11自己做wordpress評論插件修改評論樣式
- 01-11在wordpress文章末尾添加內(nèi)容的簡單方
- 01-11wordpress獲取文章評論數(shù)過濾掉作者代
- 01-11wordpress dynamic
- 01-11不用wordpress插件顯示文章瀏覽統(tǒng)計功
隨機(jī)閱讀
- 01-10delphi制作wav文件的方法
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 04-02jquery與jsp,用jquery
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10C#中split用法實例總結(jié)
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-11ajax實現(xiàn)頁面的局部加載
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改