【发布时间】:2014-07-11 08:32:52
【问题描述】:
我知道 wordpress 用用户 id 映射数据库中帖子和 cmets 的数据。
例如,在wp_posts表中,post_author列对应发帖的用户id,在wp_cmets表中, user_id 列对应于对帖子发表评论的用户 ID。
但我想要实现的是使用 username 值而不是用户 id 来识别用户。因为我正在开发一种功能,以便用户将在 wordpress 之外进行身份验证,所以他们的详细信息不会插入到 wordpress 数据库(wp_users 表)中。我正在使用自定义会话将用户的会话存储在 wordpress 中,在成功验证后存储我从第三方站点收到的用户的 用户名。
如上所述,我正在考虑以下几个选项:
- 使用挂钩来更改通过用户名而不是用户 ID 映射/识别用户的功能。
- 创建实现此功能的新插件
- 在 wordpress 中创建新表,并使用它们来存储用户名以及帖子/cmets。
谁能指导我正确的道路? 请注意:
- 我只想忘记 wp_users 表。我不想碰它。我既不会从中获取任何东西,也不会在其中插入任何东西。所以我只想将用户登录名插入到其他相关表中,例如 wp_posts 和 wp_cmets,可能是通过向它们添加新列。
- 我也不想更改wordpress的核心文件,因为我担心我以后无法更新wordpress。但我相信数据库是可以改变的。
【问题讨论】:
-
在 wp_users 表中为“在 wordpress 之外进行身份验证”用户创建记录会简单得多,不是吗?否则听起来就像重写 wordpress。
-
您可以将该用户名设置为帖子元,然后使用该帖子元来获取该特定用户的帖子。无需创建任何表格。
-
@AD7six 我的主要目的是不在 wp_users 表中创建新记录。因为我不想将它与成千上万的用户一起转储,这些用户在 wordpress 之外进行身份验证。用户通过身份验证后,我只想让他模仿一个角色(这将由外部身份验证服务决定),而不是在数据库中实际存储任何内容。
-
@shasi 如果您拥有数千名用户,为什么不创建数千名用户?或者创建用户来代表一个角色,当他们进行身份验证时,为他们分配该用户。似乎不太可能按照您的要求执行/可能 - 但由于我不使用 WP - 我不是有权这样说的人。