纯代码实现WordPress博客显示访客最近浏览的文章

2019年5月29日01:20:40 发表评论 230
摘要

今天在久伴博客看到一个效果,就是侧边栏可以显示博客访客最近浏览过的文章,特分享给大家。

 

纯代码实现WordPress博客显示访客最近浏览的文章

 

代码部署

将以下代码添加到functions.php文件

 

  1. <?php
  2. /* 可选参数: */
  3. $zg_cookie_expire = 360; // cookie过期时间,默认值是360天
  4. $zg_number_of_posts = 10; // 显示篇数,默认值是10。
  5. $zg_recognize_pages = true;
  6. /* 此行后不要编辑 */
  7. function zg_lwp_header() {
  8.     if (is_single()) {
  9.         zg_lw_setcookie();
  10.     } else if (is_page()) {
  11.         global $zg_recognize_pages;
  12.         if ($zg_recognize_pages === true) {
  13.             zg_lw_setcookie();
  14.         }
  15.     }
  16. }
  17. function zg_lw_setcookie() {
  18.     global $wp_query;
  19.     $zg_post_ID = $wp_query->post->ID;
  20.     if (! isset($_COOKIE["WP-LastViewedPosts"])) {
  21.         $zg_cookiearray = array($zg_post_ID);
  22.     } else {
  23.         $zg_cookiearray = unserialize(preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'"stripslashes($_COOKIE["WP-LastViewedPosts"])));
  24.         if (! is_array($zg_cookiearray)) {
  25.             $zg_cookiearray = array($zg_post_ID);
  26.         }
  27.     }
  28.     if (in_array($zg_post_ID$zg_cookiearray)) {
  29.         $zg_key = array_search($zg_post_ID$zg_cookiearray);
  30.         array_splice($zg_cookiearray$zg_key, 1);
  31.     }
  32.     array_unshift($zg_cookiearray$zg_post_ID);
  33.     global $zg_number_of_posts;
  34.     while (count($zg_cookiearray) > $zg_number_of_posts) {
  35.         array_pop($zg_cookiearray);
  36.     }
  37.     $zg_blog_url_array = parse_url(get_bloginfo('url'));
  38.     $zg_blog_url = $zg_blog_url_array['host'];
  39.     $zg_blog_url = str_replace('www.', ''$zg_blog_url);
  40.     $zg_blog_url_dot = '.';
  41.     $zg_blog_url_dot .= $zg_blog_url;
  42.     $zg_path_url = $zg_blog_url_array['path'];
  43.     $zg_path_url_slash = '/';
  44.     $zg_path_url .= $zg_path_url_slash;
  45.     global $zg_cookie_expire;
  46.     setcookie("WP-LastViewedPosts", serialize($zg_cookiearray), (time()+($zg_cookie_expire*86400)), $zg_path_url$zg_blog_url_dot, 0);
  47. }
  48. function zg_recently_viewed() {
  49.     echo '<ul class="viewed_posts">';
  50.     if (isset($_COOKIE["WP-LastViewedPosts"])) {
  51.         $zg_post_IDs = unserialize(preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'"stripslashes($_COOKIE["WP-LastViewedPosts"])));
  52.         foreach ($zg_post_IDs as $value) {
  53.             global $wpdb;
  54.             $zg_get_title = $wpdb->get_results("SELECT post_title FROM $wpdb->posts WHERE ID = '$value+0' LIMIT 1");
  55.             foreach($zg_get_title as $zg_title_out) {
  56.                 echo "<li><a href=\"". get_permalink($value+0) . "\" title=\""$zg_title_out->post_title . "\">"$zg_title_out->post_title . "</a></li>\n";
  57.             }
  58.         }
  59.     } else {
  60.     }
  61.     echo '</ul>';
  62. }
  63. add_action('get_header','zg_lwp_header');
  64. ?>

 

以上代码添加完毕,请复制以下代码到自己想显示的地方粘贴

 

  1. <?php if (function_exists('zg_recently_viewed')): if (isset($_COOKIE["WP-LastViewedPosts"])) { ?>
  2. <h2>Last viewed posts</h2>
  3. <?php zg_recently_viewed(); ?>
  4. <?php } endif; ?>

 

效果图:

见侧边栏

 

若文章图片、下载链接等信息出错,请在评论区留言反馈,博主将第一时间更新!如果喜欢,请打赏支持本站,谢谢大家!
  • 我的QQ
  • QQ扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: