当前位置: 首页 > news >正文

WordPress 主题技巧:给文章页增加“谁来过”模块。

模块功能:

我个人目前在做一个电影类的网站,在开发文章页的模版时候,突然觉得给文章页增加一个“谁对本电影感兴趣”的功能模块可能会比较有趣,这个功能有点类似于‘足迹’的感觉,用户可以通过这个功能,发现与他兴趣相投的人。

我把代码分享出来,不知道有没有朋友对此功能感兴趣呢?

代码实现:

<?php  
global $post;
// 本代码用于记录当前用户访问本文的时间和用户信息。
$current_user_id = get_current_user_id();
$visits = get_post_meta($post->ID, '_user_visit_count', true);
$visits = $visits ? $visits : array();					
if ($current_user_id && array_key_exists($current_user_id, $visits)) {$visits[$current_user_id]['time'] = current_time('mysql');
} elseif ($current_user_id) {$visits[$current_user_id] = array('nickname' => wp_get_current_user()->nickname,	'avatar'=>get_avatar($current_user_id, 96),				        'time' => current_time('mysql'));
}
update_post_meta($post->ID, '_user_visit_count', $visits);// 获取所有访问过本页的用户记录
$unique_visitors = array();
foreach ($visits as $user_id => $visit) {if (user_can($user_id, 'read')) {$unique_visitors[$user_id] = $visit;}
}
// 输出访问记录
$loopcount = 0; // 用于控制循环
$countPost = $options['single_whocare_count']; // 形如:$options['album1_rank_qua']   *用于获取后台设置的循环次数, 这里需要在后台增加变量进行控制。
if ($unique_visitors) {echo '<ul class=who_visited>';					    foreach ($unique_visitors as $user_id => $visit) {if($loopcount >= $countPost) break;echo '<li><div class=user_avatar>' .$visit['avatar'] . '</div> <div class=user_nickname>'. $visit['nickname'] . '</div> <div class=visit_time>' . $visit['time'] . '&nbsp;来过~</div></li>';$loopcount++; //自增,循环计次 }echo '</ul>';
} else {echo '目前还没有访问者。';
}
?>

如果你的网站同时开发了用户中心和关注功能,你还可以在这里给 访问者 加上链接跳转到用户中心,或增加关注,提高用户交互。

CSS样式很简单,我就不发了。毕竟,主题不同,样式还是要自己写的。

相关文章:

WordPress 主题技巧:给文章页增加“谁来过”模块。

模块功能&#xff1a; 我个人目前在做一个电影类的网站&#xff0c;在开发文章页的模版时候&#xff0c;突然觉得给文章页增加一个“谁对本电影感兴趣”的功能模块可能会比较有趣&#xff0c;这个功能有点类似于‘足迹’的感觉&#xff0c;用户可以通过这个功能&#xff0c;发…...

【vue组件库搭建07】Vitest单元测试

vitest官网 vue-test-utils 我们的测试框架选择的是 Vitest 和 vue-test-utils。两者的关系为&#xff1a; Vitest 提供测试方法&#xff1a;断言、Mock 、SpyOn 等方法。vue-test-utils: 挂载和渲染组件&#xff1a; Vue Test Utils 允许您在隔离中挂载组件&#xff0c;这意…...

JSONObject和Map<String, Object>的转换

一、前言 Java开发中出参返回和入参传入更灵活的方法是使用Map<String, Object>入参或出参&#xff0c;或者使用JSONObject。 1、好处&#xff0c;参数可变&#xff0c;对接口扩展性很友好。 public ResponseData<WXModelDTO> getUserInfo(RequestBody Map<…...

C# 建造者模式(Builder Pattern)

建造者模式&#xff08;Builder Pattern&#xff09;&#xff0c;也被称为生成器模式&#xff0c;是一种对象构建模式&#xff0c;旨在将复杂对象的构建过程与表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。这种模式特别适用于构建具有多个组成部分的复杂对象&am…...

初阶数据结构速成

本篇文章算是对初阶数据结构的总结&#xff0c;内容较多&#xff0c;请耐心观看 基础概念部分 顺序表 线性表&#xff08; linear list &#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是⼀种在实际中⼴泛使 ⽤的数据结构&#xff0c;常⻅的线性表&#xff1a;…...

nx上darknet的使用-目标检测-在python中的使用

1 内置的代码 在darknet中已经内置了两个py文件 darknet_video.py与darknet_images.py用法类似&#xff0c;都是改一改给的参数就行了&#xff0c;我们说一下几个关键的参数 input 要预测哪张图像weights 要使用哪个权重config_file 要使用哪个cfg文件data_file 要使用哪个da…...

Python高级(四)_内存管理

Python高级-内存管理 第四章 内存管理 1、对象池 小整数池 系统默认创建好的,等着你使用 概述:整数在程序中的使用非常广泛,Python为了优化速度,使用了小整数对象池,避免为整数频繁申请和销毁内存空间。Python 对小整数的定义是 [-5, 256] ,这些整数对象是提前建立好的…...

关键路径-matlab

路径上边的数目称为路径长度 图的基本知识 求最短路径&#xff08;Dijkstra算法&#xff09; 2. 待继续尝试 ①Dijkstra ②floyd_all.m 一 二 ③ LeetCode [329. 矩阵中的最长递增路径]...

JavaDS —— 单链表 与 LinkedList

顺序表和链表区别 ArrayList &#xff1a; 底层使用连续的空间&#xff0c;可以随机访问某下标的元素&#xff0c;时间复杂度为O&#xff08;1&#xff09; 但是在插入和删除操作的时候&#xff0c;需要将该位置的后序元素整体往前或者向后移动&#xff0c;时间复杂度为O&…...

LangChain —— Message —— how to filter messages

文章目录 一、概述二、基本使用三、连成链 一、概述 在更复杂的链和代理中&#xff0c;我们可能会使用消息列表跟踪状态。此列表可以开始累积来自多个不同模型、说话者、子链等的消息&#xff0c;我们可能只想将此完整消息列表的子集传递给链/代理中的每个模型调用。 filter_me…...

conda install问题记录

最近想用代码处理sar数据&#xff0c;解放双手。 看重了isce这个处理平台&#xff0c;在安装包的时候遇到了一些问题。 这一步持续了非常久&#xff0c;然后我就果断ctrlc了 后面再次进行尝试&#xff0c;出现一大串报错&#xff0c;不知道是不是依赖项的问题 后面看到说mam…...

【python】IPython的使用技巧

IPython使用技巧 一、魔法命令 %timeit 用途&#xff1a;用于测量一段代码的执行时间&#xff0c;这对于评估代码的性能非常有帮助&#xff0c;尤其适用于需要进行性能优化和比较不同实现方式效率的场景。示例&#xff1a;%timeit [x**2 for x in range(1000)]扩展&#xf…...

常用知识点问答

kafka如何部署&#xff1f; 先说明kafka的版本如果是 2.X 版本&#xff0c;则要先部署 3或5 个服务器的zookeeper集群&#xff0c;然后在每个zookeeper服务器上部署kafka应用。如果是 3.X 版本&#xff0c;kafka不再依赖zookeeper&#xff0c;所以可以直接在java17的环境上部署…...

paddlenlp cpu windows 下测试gpt

paddlenlp 安装python3.11版本 conda create -n python311 python3.11 激活python conda activate python311 安装paddlepaddle conda install paddlepaddle3.0.0b0 -c paddle pip install paddlenlp3.0.0b0 -U -i https://pypi.tuna.tsinghua.edu.cn/simple windows下…...

uboot的功能

uboot裸机程序&#xff0c;uboot的核心功能是启动内核 uboot启动流程 XIP设备&#xff1a; 1、硬件初始化 2、读flash上面的内核&#xff0c;拷贝进内存 3、启动内核 非XIP设备 1、BROM程序拷贝uboot到RAM 2、执行uboot 3、硬件初始化 4、读flash上面的内核&#xff0c;拷贝进…...

java导出word实现

参考&#xff1a;Poi-tl Documentation...

Flink 提交作业的方式

首先我进行了flink单机部署&#xff0c;个人建议不管是学习还是开发尽量不使用 然后开始了flink自带集群部署&#xff0c;部署在三台服务器上&#xff0c;资源管理由flink集群自己管理&#xff0c;然后为了解决集群的单点故障问题&#xff0c;使用zookeeper监听事件&#xff0…...

JVM系列 | 垃圾收集算法

JVM系列 | 垃圾收集算法 文章目录 前言如何判断对象已"死"&#xff1f;引用计数法可达性分析算法可达性分析2.0版 | 引用的增强对象的消亡过程回收方法区主要回收目标&#xff1a;回收操作 垃圾收集算法分代收集理论 与 跨代引用假说分代收集理论跨带引用假说 垃圾收…...

深入理解Spring Boot中的事件驱动架构

深入理解Spring Boot中的事件驱动架构 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 1. 引言 事件驱动架构在现代软件开发中越来越受欢迎&#xff0c;它能够提高系统的松耦合性和可扩展性。Sprin…...

Moldflow安装包下载:附网盘地址+详细教程步骤

如大家所了解的&#xff0c;Autodesk Moldflow仿真软件具有注塑成型仿真工具&#xff0c;能够帮助您验证和优化塑料零件、注塑模具和注塑成型流程。目前常用的版本有Moldflow 2019和Moldflow2023。 还没有获取Moldflow软件安装包资源的小伙伴&#xff0c;可以用百度云盘保存或下…...

RQ任务依赖循环检测终极指南:如何避免工作流死锁陷阱

RQ任务依赖循环检测终极指南&#xff1a;如何避免工作流死锁陷阱 【免费下载链接】rq 项目地址: https://gitcode.com/gh_mirrors/rq/rq Redis Queue (RQ) 是一个强大的Python任务队列系统&#xff0c;它支持任务依赖管理功能&#xff0c;让开发者能够构建复杂的工作流…...

深入XFS文件系统:从一次CentOS 7的Internal error报错,聊聊xfs_repair背后的原理与避坑指南

深入XFS文件系统&#xff1a;从Internal error报错到修复原理与实战指南 当你在一台运行CentOS 7的生产服务器上看到"XFS_WANT_CORRUPTED_GOTO"这个鲜红的报错信息时&#xff0c;作为运维工程师的肾上腺素会立刻飙升。这不是一个普通的I/O错误&#xff0c;而是XFS文件…...

Z-Image-GGUF小程序开发:微信小程序前端调用云端AI绘画API

Z-Image-GGUF小程序开发&#xff1a;微信小程序前端调用云端AI绘画API 最近在折腾AI绘画&#xff0c;发现一个挺有意思的事儿&#xff1a;很多厉害的模型都部署在云端服务器上&#xff0c;但咱们平时用手机的时间可比用电脑多多了。要是能在微信里随手打开一个小程序&#xff…...

MySQL数据同步神器Canal实战:从配置到Java客户端开发全流程

MySQL数据同步神器Canal实战&#xff1a;从配置到Java客户端开发全流程 在数据驱动的时代&#xff0c;实时数据同步已成为现代应用架构的核心需求。想象一下电商平台的库存实时更新、金融系统的交易流水同步、物流系统的状态追踪——这些场景都离不开高效可靠的数据同步机制。…...

从零开始:手把手教你用Git和GitHub管理个人项目(含常见问题解答)

从零开始&#xff1a;手把手教你用Git和GitHub管理个人项目&#xff08;含常见问题解答&#xff09; 第一次接触Git时&#xff0c;我盯着命令行里那些神秘的add、commit、push指令发呆了半小时——它们看起来像某种编程黑话。直到把个人博客项目搞砸三次后&#xff0c;我才真正…...

如何在浏览器中免安装使用微信?这个开源插件给你答案!

如何在浏览器中免安装使用微信&#xff1f;这个开源插件给你答案&#xff01; 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 你是否曾经遇到过这样的…...

论文降AI完成后怎么跟导师解释文字变化:沟通话术和注意事项

论文降AI完成后怎么跟导师解释文字变化&#xff1a;沟通话术和注意事项 这是一篇我自己也会反复翻看的教程。因为每次帮朋友降AI的时候&#xff0c;总有些细节差点忘记。 用的工具是嘎嘎降AI&#xff08;www.aigcleaner.com&#xff09;&#xff0c;4.8元一篇&#xff0c;达标…...

如何自定义ProxyManager代理生成器:从入门到精通的完整指南

如何自定义ProxyManager代理生成器&#xff1a;从入门到精通的完整指南 【免费下载链接】ProxyManager &#x1f3a9;✨&#x1f308; OOP Proxy wrappers/utilities - generates and manages proxies of your objects 项目地址: https://gitcode.com/gh_mirrors/pr/ProxyMan…...

基于IGH_Master的EtherCAT主站配置与伺服电机/变频器驱动实战指南

1. IGH_Master与EtherCAT基础入门 第一次接触EtherCAT时&#xff0c;我被它的实时性能震惊了——微秒级的响应速度&#xff0c;完全颠覆了我对工业总线的认知。IGH_Master作为开源EtherCAT主站实现&#xff0c;就像是给开发者打开了一扇通往工业自动化的大门。这里我分享下自己…...

如何在PC上完美运行PS3游戏:RPCS3模拟器终极指南

如何在PC上完美运行PS3游戏&#xff1a;RPCS3模拟器终极指南 【免费下载链接】rpcs3 PS3 emulator/debugger 项目地址: https://gitcode.com/GitHub_Trending/rp/rpcs3 你是否曾经想过在电脑上重温那些经典的PS3游戏&#xff1f;或者想要体验那些只能在PlayStation 3上玩…...