是否可以让wordpress用户知道他们已经阅读了哪些帖子?

时间:2012-07-10 04:30:01

标签: php mysql database wordpress wordpress-plugin

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

例如,假设我有一个以用户名作为主键的表post_views,并且每次用户到来时,我都会检查该表中是否存在具有帖子ID的列的值。

如果确实如此,那就做点什么......如果没有,那么,创建列并指定值为1或者其他东西。

这样的事情是否可行?对不起,我是一个mysql noob。

谢谢!

1 个答案:

答案 0 :(得分:2)

嗯,这是可行的,是的。

你可以:

  1. 像每个人一样使用WP:在他们庞大的存储库中搜索插件并安装它。有可能完全按照您的需要运作;
  2. 对于登录用户:创建一个关系表,比如users_posts

         id | user_id | post_id
    

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

  3. 对于非登录用户:如果没有用户ID,您可以使用cookies:在cookie中写入用户信息(IP,UserAgent,等等)和帖子ID;只要cookie没有被清除(或过期),你仍然会知道用户看到了什么。为了增加甜度:只要用户登录,您就可以将这个基于cookie的信息转换为第2点中的方法。

    好吧,再想一想,cookie不是必需的,你也可以在这里使用数据库,但是表格不会存储用户ID,而是存储其他信息(你可以使用带有添加列的同一个表,或者专门用于新的列)非登录用户。我会选择后者)

    请记住,IP,用户代理和其他此类信息不可靠,并且可能导致问题 - 第一个可以由不同的用户共享,第二个可以很容易欺骗。最好的做法是忽略这一点3)并始终只跟踪已登录的用户,这样就不会产生问题。