WordPress代码实现最近浏览历史功能
发布时间:2025-10-22 16:57:06 本站作者 【 字体:大 中 小 】 浏览:129 次
这个方法不需要使用js,而是利用Cookies记录访客曾经浏览过的文章,展示浏览历史功能。方法很简单
步骤一
首先将下面的代码加入functions.php文件中
/* 相关参数: */
$zg_cookie_expire = 360; // cookie过期的时间,默认值是360天
$zg_number_of_posts = 10; // 显示篇数,默认值是10。
$zg_recognize_pages = true; // 页面模板是否也要设置cookies?默认值是true
function zg_lwp_header() {
if (is_single()) {
zg_lw_setcookie();
} else if (is_page()) {
global $zg_recognize_pages;
if ($zg_recognize_pages === true) {
zg_lw_setcookie();
}
}
}
function zg_lw_setcookie() {
global $wp_query;
$zg_post_ID = $wp_query->post->ID;
if (! isset($_COOKIE["WP-LastViewedPosts"])) {
$zg_cookiearray = array($zg_post_ID);
} else {
$zg_cookiearray = unserialize(preg_replace('!s:(d+):"(.*?)";!e', "'s:'.strlen('$2').':"$2";'", stripslashes($_COOKIE["WP-LastViewedPosts"])));
if (! is_array($zg_cookiearray)) {
$zg_cookiearray = array($zg_post_ID);
}
}
if (in_array($zg_post_ID, $zg_cookiearray)) {
$zg_key = array_search($zg_post_ID, $zg_cookiearray);
array_splice($zg_cookiearray, $zg_key, 1);
}
array_unshift($zg_cookiearray, $zg_post_ID);
global $zg_number_of_posts;
while (count($zg_cookiearray) > $zg_number_of_posts) {
array_pop($zg_cookiearray);
}
$zg_blog_url_array = parse_url(get_bloginfo('url'));
$zg_blog_url = $zg_blog_url_array['host'];
$zg_blog_url = str_replace('www.', '', $zg_blog_url);
$zg_blog_url_dot = '.';
$zg_blog_url_dot .= $zg_blog_url;
$zg_path_url = $zg_blog_url_array['path'];
$zg_path_url_slash = '/';
$zg_path_url .= $zg_path_url_slash;
global $zg_cookie_expire;
setcookie("WP-LastViewedPosts", serialize($zg_cookiearray), (time()+($zg_cookie_expire*86400)), $zg_path_url, $zg_blog_url_dot, 0);
}
function zg_recently_viewed() {
echo '<ul class="viewed_posts">';
if (isset($_COOKIE["WP-LastViewedPosts"])) {
$zg_post_IDs = unserialize(preg_replace('!s:(d+):"(.*?)";!e', "'s:'.strlen('$2').':"$2";'", stripslashes($_COOKIE["WP-LastViewedPosts"])));
foreach ($zg_post_IDs as $value) {
global $wpdb;
$zg_get_title = $wpdb->get_results("SELECT post_title FROM $wpdb->posts WHERE ID = '$value+0' LIMIT 1");
foreach($zg_get_title as $zg_title_out) {
echo "<li><a href="". get_permalink($value+0) . "" title="". $zg_title_out->post_title . "">". wp_trim_words($zg_title_out->post_title,15) . "</a></li>n";
}
}
} else {
}
echo '</ul>';
}
add_action('get_header','zg_lwp_header');注意:其中的zg_recently_viewed()即为为输出浏览历史的函数,上面代码最后部分我用wp_trim_words函数对输出的文章标题进行了截断。
步骤二
有了输出函数,我们只要把它添加到自己想要的位置即可,比如侧栏,文章页某个位置,代码如下:
<?php if (function_exists('zg_recently_viewed')): if (isset($_COOKIE["WP-LastViewedPosts"])) { ?>
<h2>Last viewed posts</h2>
<?php zg_recently_viewed(); ?>
<?php } endif; ?>最后是添加样式,根据自己的主题来吧。
特别说明
以上代码源自:last-viewed-posts插件,这个功能有个bug,如果你的主题控制浏览新文章是在新窗口打开的话会出现多余的cookies,也就会出现多余的浏览历史,若是右键新窗口打开则不会,目前还不知道如何解决。
热门推荐
最新发布
手撕蒜薹凉菜的做法(清爽口感,健康美味,让你欲罢不能)
在炎炎夏日,吃些清爽凉菜是再合适不过的了。而手撕蒜薹凉菜不仅味道鲜美,还有利于降血压、排毒养颜等功效,可以说是非常适合夏季食用的一道佳肴。一、准备食材首先我们需要准备的就是食材,要制作手撕蒜薹凉菜,需要准备的食材有:蒜薹、香菜、生姜、红辣椒、酱油、芝麻油、醋、盐和糖。二、清洗食材将蒜薹和香菜洗净,把...
香酥小海鱼的做法(以小海鱼为主角,轻松制作口感香酥的美食)
海鲜一直是人们餐桌上的美味佳肴,而以小海鱼为材料制作的香酥小海鱼更是备受大家喜爱。香酥小海鱼口感鲜美,外脆里嫩,营养丰富,是一道美味可口的海鲜佳肴。接下来我们就来一起学习如何制作香酥小海鱼,轻松享受美食的同时还能保证健康营养。一:准备材料准备材料是制作香酥小海鱼的第一步。需要准备的材料有小海鱼、面粉...
教你用白水煮出完美的鸡蛋(白水煮蛋,简单易学,健康美味,煮出口感最佳鸡蛋)
作为一种简单易学的食品制作方式,白水煮鸡蛋的口感和健康效益都深受人们喜爱。在本文中,我们将介绍如何用白水煮出口感最佳的鸡蛋。准备材料准备一些鸡蛋,清水和一个深度足够的小锅。选择鸡蛋选用质量良好、保存时间较短的新鲜鸡蛋,这样可以保证蛋黄和蛋白的质量更好。加水入锅在锅里倒入足够的水,水的高度要超过鸡蛋,...
白萝卜丝丸子汤,美味又养生(健康饮食之道,一碗汤养生又滋补)
在现代快节奏的生活中,我们常常忽略了对自己健康的关注和照顾。为了养成健康的饮食习惯,我们可以学习一些简单易操作的养生菜谱,如今天介绍的白萝卜丝丸子汤,它是一道兼具口感和营养价值的汤品。1.选料要点:选择好的白萝卜、猪肉和豆腐。2.制作白萝卜丝:将白萝卜去皮后切成细丝。3.炖制猪肉汤底:将猪肉切成小块,加入...
大家都在看
手撕蒜薹凉菜的做法(清爽口感,健康美味,让你欲罢不能)

香酥小海鱼的做法(以小海鱼为主角,轻松制作口感香酥的美食)

教你用白水煮出完美的鸡蛋(白水煮蛋,简单易学,健康美味,煮出口感最佳鸡蛋)

白萝卜丝丸子汤,美味又养生(健康饮食之道,一碗汤养生又滋补)

白萝卜丝丸子汤,美味又养生(健康饮食之道,一碗汤养生又滋补)

鲜美可口的鳕鱼豆腐汤(家庭厨房里的美味佳肴,健康营养更有口感)

手工制作猫耳朵零食(自制美味小零食,体验DIY乐趣)

用香芹干丝轻松制作美食(香芹干丝的多种用途及做法)

小笼包萝卜,美味的佳肴(用小笼包和萝卜打造独特口感)

自制猪肉松,美味健康不贵!(用自己的双手,做出美味的猪肉松,让生活更有情趣!)

