调用最近浏览过的文章,比较蛋疼的功能,原理是通过读取浏览器cookie文件,调用显示最近(360天)被访问过的10篇文章 ,需要注意的是,该功能不是统计所有浏览者最近查看过的文章,并没有写进数据库中,每个访客都有自己独有的浏览清单。
调用最近浏览过的文章,比较蛋疼的功能,原理是通过读取浏览器cookie文件,调用显示最近(360天)被访问过的10篇文章 ,需要注意的是,该功能不是统计所有浏览者最近查看过的文章,并没有写进数据库中,每个访客都有自己独有的浏览清单。
将下面代码添加到主题functions.php文件的最后:
<?php
/* 可选参数: */
$zg_cookie_expire = 360; // cookie过期时间,默认值是360天
$zg_number_of_posts = 10; // 显示篇数,默认值是10。
$zg_recognize_pages = true;
/* 此行后不要编辑 */
function zg_lwp_header() {
if (is_single()) {
zg_lw_setcookie();
} elseif (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_IDsas$value) {
global$wpdb;
$zg_get_title = $wpdb->get_results(\"SELECT post_title FROM $wpdb->posts WHERE ID = \'$value+0\' LIMIT 1\");
foreach($zg_get_titleas$zg_title_out) {
echo\"<li><a href=\"\". get_permalink($value+0) . \"\" title=\"\". $zg_title_out->post_title . \"\">\". $zg_title_out->post_title . \"</a></li>n\";
}
}
} else {
}
echo \'</ul>\';
}
add_action(\'get_header\',\'zg_lwp_header\');
?>
由于代码高亮转换后代码可能执行有误,这里提供:源文件下载 (提取码:577k)
调用方法,在侧边sidebar模版或者正文single模版适当位置加入下面代码;
<?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 插件,如果嫌折腾麻烦,可以直接安装并启用该插件,使用更为方便,可以直接将该功能拖到侧边小工具中。
© 版权声明
1. 资源都是经过站长或作者收集测试修改后发布分享。如若转载请在文内以超链形式注明狐狸库文章出处,谢谢合作!
2. 本站除原创内容,其余所有内容均收集自互联网,仅限用于学习和研究目的,本站不对其内容的合法性承担任何责任。如有版权内容,请通知我们或作者删除,其版权均归原作者所有,本站虽力求保存原有版权信息,但因众多资源经多次转载,已无法确定其真实来源,或已将原有信息丢失,所以敬请原作者谅解!
3. 本站用户所发布的一切资源内容不代表本站立场,并不代表本站赞同其观点和对其真实性负责,若您对本站所载资源作品版权归属存有异议,请留言附说明联系邮箱,我们将在第一时间予以处理 ,同时向您表示歉意!为尊重作者版权,请购买原版作品,支持您喜欢的作者,谢谢!
4. 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客如有发现请立即向站长举报;本站资源文件大多存储在云盘,如发现链接或图片失效,请联系作者或站长及时更新。
THE END
请登录后查看评论内容