首页 > 其他分享 >WordPress正文添加您最近看过的功能

WordPress正文添加您最近看过的功能

时间:2022-12-30 16:08:24浏览次数:45  
标签:url zg 正文 blog 添加 WordPress post array cookiearray

让网站记住读者的浏览历史,让读者很方便地知道他最近阅读了你博客的哪些文章。这一举措,对于提高用户体验应该是不错的方法。那么,如何为你的WordPress站点添加这个功能?一起往下看吧!

把下面的代码添加到主题目录下的functions.php(请备份再操作)文件里即可

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

然后在你的正文右边添加小工具:增强文本中插入以下代码。

1. <?php
2. if(function_exists('zg_recently_viewed')){
3. if(isset($_COOKIE["WP-LastViewedPosts-coding3min"])){
4. zg_recently_viewed();
5. }
6. }?
  1. >

效果图如下:

WordPress正文添加您最近看过的功能_php

  • 输入编号:6400,直达文章
  • 输入m|M,直达目录列表

标签:url,zg,正文,blog,添加,WordPress,post,array,cookiearray
From: https://blog.51cto.com/u_12018693/5980554

相关文章

  • 彻底关闭WordPress自动更新和后台更新检查
    WordPress的后台更新检测和自动更新功能,由于WordPress更新服务器在国外,而国内的网络由于总总原因总是无法顺畅得连接上WordPress的更新服务器,所以一直卡在那里,造成WordPres......
  • Nginx动态添加模块
    说明:有时我们需要在现有的web服务器上增加新的模块实现更为丰富的功能,Nginx算是比较常用的web服务器,但是nginx也不仅仅只可以做web服务器,只要有对应的插件还可用作反向代理......
  • 知更鸟主题添加评论者操作系统、浏览器和运营商信息
    第一步、部署文件1、下载show-useragent文件(显示国籍系统浏览器文件)和ip2c文件(显示运营商信息文件)2、解压压缩包,将里面的show-useragent文件夹和ip2c文件夹一并上传到正在用......
  • LAMP环境搭建WordPress自动化安装脚本
    此脚本是LAMP环境安装WordPress脚本,有需要朋友可以参考,脚本内容如下:系统环境:CentOS7.4软件版本:Apache:2.4.28Mysql:5.7.29PHP:7.3.7WordPress:5.4[root@localhost~]#vimauto......
  • VSCode添加到右键菜单命令
    一、打开注册表win+R输入regedit,打开注册表编辑器二、文件添加右键VScode打开命令依次找到HKEY_CLASSES_ROOT>*>shell,右键新建,项,命名为VSCode,点击VScode文件夹,双击......
  • WordPress添加支付宝第三方登录功能
    OpenSocial操作简单适用范围广;可操作性强;无第三方平台、无接口文件冗余;功能特点社交登陆:腾讯QQ、微博、微信、豆瓣、谷歌、微软、Facebook、Twitter、Github等社交分享:QQ......
  • WordPress添加百度第三方登录功能
    OpenSocial操作简单适用范围广;可操作性强;无第三方平台、无接口文件冗余;功能特点社交登陆:腾讯QQ、微博、微信、豆瓣、谷歌、微软、Facebook、Twitter、Github等社交分享:QQ......
  • Selenium51-实现添加赛区有效用例
    面向对象实现test_001pytest测试方法实现:在原来的步骤前后增加调用通用函数步骤deftest_001(self):self.login_to_add_division_page()driver=......
  • Selenium48-实现添加赛区无效用例
    添加赛区_007总体流程鼠标悬停在赛区名称文本框检查出现浮动提示“该输入项为必输项”滚动条滑动到底部提交后检查提示不能为空无效数据时取消添加滚动条滑动到顶......
  • 在C#里面给PPT添加注释
    平常开会或者做总结报告的时候我们通常都会用到PowerPoint演示文稿,我们可以在单个幻灯片或者全部幻灯片里面添加注释,这样观众可以从注释内容里面获取更多的相关信息。有些朋......