我可以在wordpress中使用用户名而不是用户ID,忽略wp_users表吗?

时间:2014-05-22 10:41:19

标签: php database wordpress

我知道wordpress使用用户ID映射数据库中帖子和评论的数据。

例如,在 wp_posts 表格中,列 post_author 对应于撰写帖子的用户ID,并且在 wp_comments 表格中, user_id 列对应于对帖子发表评论的用户ID。

但我想要实现的是使用用户名值而不是用户ID来识别用户。因为我正在开发一个功能,以便用户将在wordpress之外进行身份验证,因此他们的详细信息不会插入wordpress数据库( wp_users 表)。我正在使用自定义会话将用户的会话存储在wordpress中,并在成功验证后存储我从第三方网站收到的用户的用户名

话虽如此,我正在考虑以下几种选择:

  • 使用挂钩来改变按用户名映射/识别用户的功能,而不是用户ID。
  • 创建实现此功能的新插件
  • 在wordpress中创建新表,并使用它们存储用户名以及帖子/评论。

任何人都可以指导我走正确的道路吗? 请注意:

  • 我只是想忘记 wp_users 表。我不想碰它。我既不会从中取任何东西,也不会在其中插入任何东西。所以我只想将用户登录名插入其他相关表格,如 wp_posts wp_comments ,可以通过向其添加新列。
  • 我也不想更改wordpress的核心文件,因为我担心以后无法更新wordpress。但我相信数据库可以改变。

2 个答案:

答案 0 :(得分:1)

你不想。用户名是可修改的,它们不是完全独特的,并且带有许多其他相关问题。

拆分你的申请。如果您想使用其他身份验证方法,请使用您喜欢的任何方法对用户进行身份验证。一旦您知道它是哪个用户,您就可以从数据库中获取用户ID并正确生成Wordpress登录。

您的修改应该避免对您不熟悉的系统内部进行大规模的彻底更改。那种方式就是疯狂。相反,专注于构建一个可以满足您需求的附加组件,然后尽快将控制权交还给主系统。通过这种方式避免重复大量工作。

答案 1 :(得分:0)

我猜您是通过说出用户名来引用用户登录名,对吧? 如果是,那么你可以实现这一点,因为userlogin是唯一的,如userid,你可以简单地查询你的wp_users表来获取用户ID。 如果没有,则无法保证您在前一个回答中通过@mrdoombringer提到的用户名获取正确的用户信息