WordPress用户数据如何存储在数据库中

存储和检索用户数据是任何博客网站最重要的功能之一。多年来,WordPress发展出了自己的管理庞大用户数据的方法。在本文中,我们将向您展示WordPress如何将这些数据存储在其数据库中。

WordPress 以结构化方式存储用户数据,使用多个数据库表。两个主要表是:

  • wp_users:存储用户名、邮箱和密码等基本用户信息。
  • wp_usermeta:存储更多用户特定的元数据,如用户偏好、自定义字段和插件相关数据。

这些表格与其他表格相关联,如wp_posts和wp_comments,分别存储用户创建的帖子和评论。每篇文章通过post_author栏与作者链接,评论则通过wp_comments表中的user_id字段与用户绑定。

注意:对于那些希望直观地管理和分析这些数据的人,用户洞察提供了一个简化流程的插件。它提供了智能筛选和自定义字段管理等工具,让你无需SQL知识即可轻松搜索、分段和分析用户数据。

WordPress用户数据库

在下图中,你可以看到上一段提到的所有表格。你还可以看到每个表格的属性,以及它们如何与 WordPress 用户数据库相关联。不要被符号迷惑——它们只是表示这些表格属性之间的关系。

现在让我们更详细地看看WordPress用户数据库的表。

wp_users表概述

WordPress 使用wp_users表在数据库中存储用户数据。WordPress 中的“wp_users”表是其数据库结构的基本组成部分,作为用户相关数据的存储库。这里只存储最基本的用户信息。这包括用户的用户名(user_login)、密码(user_pass)和电子邮件(user_email)。该表是 WordPress 网站内用户管理、认证和授权流程的核心。

以下截图展示了wp_users表的结构:

WordPress 用户数据库表

这里还有一些其他用户表列的概述:

描述
身份证它是在注册时提供给每个用户的唯一标识符。
user_nicename正如普通 WordPress 用户可能已经知道的,WordPress 提供了一个选项,让他们可以将显示名称作为独立名称,该名称会单独存储在这个字段中。
user_url这是一个可选字段,可用于存储用户网站的URL。许多主题在评论区使用该URL,通过将用户的头像和/或姓名链接到他们的网站。
user_activation_keyWordPress 使用该字段存储密码重置请求的唯一密钥。
user_status虽然该字段曾用于以整数形式存储用户状态(0、1或2),但现已不再使用。该场现已废弃,未来版本很可能被移除。
垃圾邮件和已删除这些字段只有在启用多站点功能时才会被添加到表格中。它们存储整数值以检查记录是垃圾记录还是已删除。它们只能包含0或1这两个值。

在user_activation_key中,当用户向网站发送密码重置请求时,会生成一个名为 check_password_reset_key 的密钥,并通过邮件发送。一旦他们点击邮件中的链接,就会与该字段中存储的密钥进行匹配。

现在,如果邮件中的密钥与该密钥直接匹配,请求将被视为无效。只有在邮件中的密钥被哈希处理后,这两个密钥才应该匹配。这就是WordPress如何认证用户的密码更改请求。

以下是信息在wp_users表中存储的一个示例:

WordPress中的wp_users表

请注意,在WordPress中,密码存储在哈希表单中,如上例所示,以确保安全。

你可以通过创建WP_User类实例并将用户ID作为第一个参数来加载任何用户的数据:

$user = new WP_User(1); // 1 is the ID of the user that we are loading
$user->user_email; // admin@example.com
$user->user_nicename; // John Doe

wp_usermeta表概述

WordPress 用户数据库中的wp_users表设计仅用于存储用户的基本信息。为了存储额外的 WordPress 用户数据,使用wp_usermeta表。它是一个数据库表,存储用户特定的元数据和与WordPress网站上每个注册用户关联的自定义键值对。这些元数据常用于多种用途,包括用户偏好、用户特定设置以及与插件和WordPress主题的集成。用户表中的ID字段和该表的user_id字段用于链接同一用户的记录。

表中包含以下字段:

领域描述
umeta_id这是元记录的唯一标识符。
user_id这是用户的唯一标识符,将这里的记录与其所属用户的记录连接起来。
meta_key该字段存储待存储信息的名称。本栏常见的数值包括admin_color、show_welcome_panel或use_ssl。
meta_value该字段存储实际的元值。

用户元表常件用来存储自定义用户数据。元值字段对可存储的值没有任何限制。这意味着你可以以序列化格式存储任何类型的值,包括普通字符串、数字、日期,甚至PHP对象。

以下是信息在wp_usermeta表中存储方式的一个示例:

wp_usermeta表

你可以用两种不同的方式作这个表中存储的记录。

如果记录是WordPress的核心字段,通常会有一个表单字段,你可以在个人资料页找到它来更新其数值。第二种方式是更深入地用程序化来实现。这意味着你可以使用WordPress已经提供的功能,这些功能可以帮助你管理网站上用户的元数据(当然,你需要获得权限才能做到这一点)。

add_user_meta(),update_user_meta()和delete_user_meta()分别用于添加、更新和删除用户元数据的函数。

要获取用户元数据,你可以使用get_user_meta()功能。这里是一个 WordPress 默认存储的 first_name 元数据的示例:

$first_name = get_user_meta( 1, 'first_name', true ); // John

另外,你也可以使用像 Users Insights 这样的工具,可以展示和搜索用户元数据。

利用用户洞察管理和搜索WordPress用户数据

虽然WordPress提供了$wpdb类用于手动查询数据库,但这对非开发者来说可能比较复杂。用户洞察提供了更易访问的无代码解决方案。凭借智能筛选和自定义字段功能,您可以轻松搜索存储在wp_users和wp_usermeta表中的用户数据。

例如,你可以根据注册日期或角色等元数据快速筛选用户,而无需编写自定义查询。用户洞察还提供详细的用户资料,便于分析登录历史、帖子或WooCommerce购买等用户活动。

当你需要:

  • 检索用户数据,如名字、姓氏及其他存储在wp_usermeta表中的自定义字段。
  • 使用CSV导出功能导出用户数据供外部分析。
  • 通过报告可视化用户活动,使WordPress中存储的数据更具可作性。

用户发帖

任何WordPress网站的运营都完全取决于其帖子。这意味着存储和检索每个用户帖子是其最重要的方面之一。

用户的帖子存储在wp_posts表中。每条帖子与用户的关联方式是通过post_author列,该栏存储了创建该帖子的用户ID。

以下是信息如何存储在wp_posts表中的示例:

wp_posts表

要加载特定用户创建的所有帖子,您可以使用get_posts()函数,通过应用“作者”参数:

$user_posts = get_posts( array( 'author' => 1 ) );

用户评论

作为博主,你一生中可能会写无数文章,但如果没有任何形式的反馈或批评,你永远不会变得更好,也无法成长为写作者。评论是让读者有机会与你沟通并提出急需批评的工具。因此,评论现在对博客来说已经变得和以往任何东西一样重要。

WordPress会把这些评论存储在wp_comments表里。评论链接到用户和帖子。

当注册用户留下评论时,用户ID会存储在wp_comments表的user_id列。然而,如果评论者不是WordPress用户,用户ID字段默认为0。

要加载特定用户提交的所有评论,您可以使用get_comments()功能。你只需要把用户ID指定为“author__in”参数。

$user_comments = get_comments( array( 'author__in' => 1 ) );

在WordPress数据库中搜索

你可以使用WP_Query或get_posts等功能搜索WordPress用户数据库表,并使用自己的筛选条件。为此,WordPress为我们提供了$wpdb类。使用$wpdb类可以很简单直观,尤其是你有SQL语言经验的话。以下是使用$wpdb类查询数据库的一个简单示例。

假设您想搜索2018年1月24日所有注册用户的数据。这是创建查询的代码:

global $wpdb;
$users_query = “SELECT * FROM $wpdb->users WHERE user_registered = ‘2018-01-24’ ”;
$users = $wpdb->get_results($users_query);

你也可以使用其他 wpdb 函数,比如查询、查询、get_var、get_row 和 get_col,来获得你想要的结果。WPDB类的完整描述可以在这里找到。如果你想用更简单、技术含量较低的方式搜索用户数据库,也可以使用WordPress插件如Users Insights,利用内置的智能筛选功能搜索数据库。

我爱主题网 自2012
主题:260+ 销售:1000+
兼容浏览器

电话咨询

7*12服务咨询电话:

1855-626-3292

微信咨询