有没有现成的插件可以做到这一点?如果没有,理论上我可以创建一个跟踪此类信息的 mysql 数据库吗?
例如,假设我有一个以用户名作为主键的 post_views 表,每次有用户来访时,我都会检查该表中是否存在具有帖子 ID 的列的值。
如果是,则执行某些操作...如果不是,则创建该列并分配一个值 1 或其他值。
这样的事情可行吗?对不起,我是一个 mysql 菜鸟。
谢谢!
最佳答案
嗯,这是可行的,是的。
你可以:
- 像每个人一样使用 WP:在他们庞大的存储库中搜索一个插件并安装它。很可能有些东西完全符合您的需要;
对于登录用户:创建一个关系表,比如 users_posts
id | user_id | post_id
在每个帖 subview 中,将用户 ID 和帖子 ID 插入此表(如果您愿意,可以添加其他信息,例如阅读帖子的日期)。对该表的查询将告诉您用户打开的所有页面,或者相反,您可以检查该用户是否看过某个页面。从你所说的来看,这是一个比你想象的更可行的表模式;
对于未登录的用户:如果您没有用户 ID,您可以使用 cookie:在 cookie 中写入用户信息(IP、UserAgent 等)和帖子 ID;只要 cookie 没有被清除(或过期),您仍然会知道用户看到或没有看到什么。为了增加甜头:一旦用户登录,您就可以将这个基于 cookie 的信息转换为第 2 点中的方法)。
好吧,再想一想,cookie 不是必需的,您也可以在这里使用数据库,但是该表不会存储用户 ID,而是存储其他信息(您可以使用带有添加列的相同表,或者专门用于未登录的用户。我会选择后者)
但请记住,IP、用户代理和此类其他信息不可靠,并且可能导致问题 - 第一个可以由不同的用户共享,第二个很容易被欺骗。最好的做法是忽略这一点 3),并始终仅跟踪登录用户,这样您就不会遇到问题。
关于php - 是否可以让 wordpress 用户知道他们已经阅读了哪些帖子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11406618/