有没有可能让wordpress用户知道他们已经读过哪些帖子


Is it possible to let a wordpress user know which posts they have already read?

是否存在这样的插件?如果没有,理论上我可以创建一个跟踪这类信息的mysql数据库吗?

例如,假设我有一个以用户名为主键的表post_views,每次用户来时,我都会检查该表中是否存在post-id列的值。

如果是,那就做点什么。。。如果没有,那么创建列并指定值1或其他值。

这样的做法可行吗?对不起,我是mysql noob。

谢谢!

嗯,这是可行的。

你可以:

  1. 像每个人对WP所做的那样:在他们巨大的存储库中搜索一个插件并安装它
  2. 对于已登录的用户:创建一个关系表,比如users_posts

         id | user_id | post_id
    

    在每个帖子视图中,都会将用户id和帖子id插入到该表中(如果你愿意,你可以添加其他信息,比如阅读帖子的日期)。对此表的查询将告诉您该用户打开的所有页面,或者相反,您可以检查该用户是否看到了某个页面。从你所说的来看,这是一个比你想象的更可行的表格模式;

  3. 对于未登录的用户:在没有用户id的情况下,您可以使用cookie:在cookie中写入用户信息(IP、UserAgent等)和帖子id;只要cookie没有被清除(或过期),你仍然可以知道用户看到了什么或没有看到什么。为了增加甜蜜:一旦用户登录,你就可以将这些基于cookie的信息转换为第2)点中的方法

    好吧,仔细想想,cookie是不必要的,你也可以在这里使用数据库,但该表不会存储用户id,而是存储其他信息(你可以使用添加了列的同一个表,或者专门为未登录用户创建的新表。我会选择后者)

    不过,请记住,IP、用户代理和其他信息是不可靠的,并可能导致问题——第一个可能被不同的用户共享,第二个可能很容易被欺骗。最好的做法是忽略这一点,始终只跟踪登录的用户,这样你就不会遇到问题。