Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我可以在wordpress中使用用户名而不是用户id,忽略wp_users表吗?_Php_Database_Wordpress - Fatal编程技术网

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

Php 我可以在wordpress中使用用户名而不是用户id,忽略wp_users表吗?,php,database,wordpress,Php,Database,Wordpress,我知道wordpress用用户id映射数据库中的帖子和评论数据 例如,在wp_posts表中,post_author列对应于撰写帖子的用户id,而在wp_comments表中,user_id列对应于对帖子发表评论的用户id 但我试图实现的是使用用户名值来识别用户,而不是用户id。因为我正在开发一种功能,用户将在wordpress之外进行身份验证,因此他们的详细信息不会插入wordpress数据库(wp_users表)。我使用自定义会话将用户会话存储在wordpress中,存储成功验证后从第三方站

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

例如,在wp_posts表中,post_author列对应于撰写帖子的用户id,而在wp_comments表中,user_id列对应于对帖子发表评论的用户id

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

综上所述,我正在考虑以下几种选择:

  • 使用钩子改变通过用户名而不是用户id映射/标识用户的功能
  • 创建实现此功能的新插件
  • 在wordpress中创建新表,并使用它们存储用户名和帖子/评论
有人能指引我走正确的路吗? 请注意:

  • 我只想忘记wp\u用户表。我不想碰它。我既不会从里面拿东西,也不会在里面插东西。因此,我只想将用户登录名插入到其他相关表中,如wp_posts,以及wp_comments,可以通过向它们添加新列来实现
  • 我也不想更改wordpress的核心文件,因为我担心以后无法更新wordpress。但我相信数据库是可以修改的

    • 你不想。用户名是可修改的,它们不是完全唯一的,并且伴随着大量其他相关问题

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


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

      我猜你说的用户名是指用户登录名,对吧?? 如果是这样的话,那么您可以做到这一点,因为userlogin与userid一样是唯一的,您只需查询wp_users表即可获得userid。
      如果没有,那么就无法保证您按照@mrdoombinger在前面的回答中提到的用户名获得正确的用户信息

      在wp_users表中为您的“在wordpress之外经过身份验证的”用户创建记录要简单得多,不是吗?否则听起来像是在重写wordpress。你可以将该用户名设置为post meta,然后使用该post meta获取该特定用户的帖子。不需要创建任何表。@AD7six我的主要目的是不在wp_users表中创建新记录。因为我不想让成千上万的用户在wordpress之外进行身份验证。用户通过身份验证后,我只希望他模拟一个角色(由外部身份验证服务决定),而不在数据库中实际存储任何内容。@shasi如果有数千个用户,为什么不创建数千个用户呢?或者创建代表角色的用户,当他们进行身份验证时,为他们分配该用户。似乎不太可能按照你的要求去做-但因为我不使用WP-我不是那种有任何权威的人。是的,我指的是用户登录名。但正如我在编辑的问题中所说,我不想使用或触摸wp_users表。我将只使用wp_posts和wp_comments表通过用户名识别用户。因此,我可能想在这两个表中添加新列。