{"id":5594,"date":"2026-02-12T20:44:52","date_gmt":"2026-02-13T01:44:52","guid":{"rendered":"https:\/\/chubes.net\/?documentation=wp_users"},"modified":"2026-03-13T03:28:17","modified_gmt":"2026-03-13T07:28:17","slug":"wp_users","status":"publish","type":"documentation","link":"https:\/\/chubes.net\/docs\/wordpress-core\/database-schema\/wp_users\/","title":{"rendered":"wp_users"},"content":{"rendered":"<p>Stores WordPress user accounts. Core authentication and profile data.<\/p><h2 class=\"wp-block-heading\">Schema<\/h2><figure class=\"wp-block-table\"><table><thead><tr><th>Column<\/th><th>Type<\/th><th>Null<\/th><th>Default<\/th><th>Description<\/th><\/tr><\/thead><tbody><tr><td><code>ID<\/code><\/td><td>bigint(20) unsigned<\/td><td>NO<\/td><td>auto_increment<\/td><td>Unique user identifier<\/td><\/tr><tr><td><code>user_login<\/code><\/td><td>varchar(60)<\/td><td>NO<\/td><td>&#8221;<\/td><td>Username for login<\/td><\/tr><tr><td><code>user_pass<\/code><\/td><td>varchar(255)<\/td><td>NO<\/td><td>&#8221;<\/td><td>Hashed password (phpass)<\/td><\/tr><tr><td><code>user_nicename<\/code><\/td><td>varchar(50)<\/td><td>NO<\/td><td>&#8221;<\/td><td>URL-friendly username slug<\/td><\/tr><tr><td><code>user_email<\/code><\/td><td>varchar(100)<\/td><td>NO<\/td><td>&#8221;<\/td><td>User email address<\/td><\/tr><tr><td><code>user_url<\/code><\/td><td>varchar(100)<\/td><td>NO<\/td><td>&#8221;<\/td><td>User website URL<\/td><\/tr><tr><td><code>user_registered<\/code><\/td><td>datetime<\/td><td>NO<\/td><td>0000-00-00 00:00:00<\/td><td>Registration timestamp<\/td><\/tr><tr><td><code>user_activation_key<\/code><\/td><td>varchar(255)<\/td><td>NO<\/td><td>&#8221;<\/td><td>Password reset key<\/td><\/tr><tr><td><code>user_status<\/code><\/td><td>int(11)<\/td><td>NO<\/td><td>0<\/td><td>Deprecated (was spam flag in MU)<\/td><\/tr><tr><td><code>display_name<\/code><\/td><td>varchar(250)<\/td><td>NO<\/td><td>&#8221;<\/td><td>Public display name<\/td><\/tr><\/tbody><\/table><\/figure><h2 class=\"wp-block-heading\">Indexes<\/h2><figure class=\"wp-block-table\"><table><thead><tr><th>Key Name<\/th><th>Columns<\/th><th>Unique<\/th><th>Purpose<\/th><\/tr><\/thead><tbody><tr><td><code>PRIMARY<\/code><\/td><td>ID<\/td><td>Yes<\/td><td>Primary key<\/td><\/tr><tr><td><code>user_login_key<\/code><\/td><td>user_login<\/td><td>No<\/td><td>Login lookup<\/td><\/tr><tr><td><code>user_nicename<\/code><\/td><td>user_nicename<\/td><td>No<\/td><td>Author archive URLs<\/td><\/tr><tr><td><code>user_email<\/code><\/td><td>user_email<\/td><td>No<\/td><td>Email lookup<\/td><\/tr><\/tbody><\/table><\/figure><h2 class=\"wp-block-heading\">Foreign Key Relationships<\/h2><p>Referenced by:<\/p><ul class=\"wp-block-list\"><li><code>wp_posts.post_author<\/code> \u2192 <code>wp_users.ID<\/code><\/li><li><code>wp_comments.user_id<\/code> \u2192 <code>wp_users.ID<\/code><\/li><li><code>wp_usermeta.user_id<\/code> \u2192 <code>wp_users.ID<\/code><\/li><li><code>wp_links.link_owner<\/code> \u2192 <code>wp_users.ID<\/code><\/li><\/ul><h2 class=\"wp-block-heading\">Password Hashing<\/h2><p>WordPress uses phpass-based hashing:<\/p><ul class=\"wp-block-list\"><li>Passwords start with <code>$P$<\/code> (portable hash)<\/li><li>Modern WP also supports bcrypt (<code>$2y$<\/code>)<\/li><li>Never store or compare plaintext passwords<\/li><\/ul><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">php<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-php\"><code class=\"language-php\">\/\/ Check password\nwp_check_password( $plaintext, $hash, $user_id );\n\n\/\/ Hash password\nwp_hash_password( $plaintext );<\/code><\/pre><\/div><h2 class=\"wp-block-heading\">Common Queries<\/h2><h3 class=\"wp-block-heading\">Get user by ID<\/h3><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">sql<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-sql\"><code class=\"language-sql\">SELECT * FROM wp_users WHERE ID = 1;<\/code><\/pre><\/div><h3 class=\"wp-block-heading\">Get user by login<\/h3><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">sql<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-sql\"><code class=\"language-sql\">SELECT * FROM wp_users WHERE user_login = &#039;admin&#039;;<\/code><\/pre><\/div><h3 class=\"wp-block-heading\">Get user by email<\/h3><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">sql<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-sql\"><code class=\"language-sql\">SELECT * FROM wp_users WHERE user_email = &#039;user@example.com&#039;;<\/code><\/pre><\/div><h3 class=\"wp-block-heading\">Get all users with roles<\/h3><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">sql<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-sql\"><code class=\"language-sql\">SELECT u.ID, u.user_login, u.display_name, um.meta_value as capabilities\nFROM wp_users u\nJOIN wp_usermeta um ON u.ID = um.user_id\nWHERE um.meta_key = &#039;wp_capabilities&#039;;<\/code><\/pre><\/div><h3 class=\"wp-block-heading\">Get users registered in date range<\/h3><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">sql<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-sql\"><code class=\"language-sql\">SELECT * FROM wp_users \nWHERE user_registered BETWEEN &#039;2024-01-01&#039; AND &#039;2024-12-31&#039;\nORDER BY user_registered DESC;<\/code><\/pre><\/div><h3 class=\"wp-block-heading\">Count users by registration month<\/h3><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">sql<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-sql\"><code class=\"language-sql\">SELECT DATE_FORMAT(user_registered, &#039;%Y-%m&#039;) as month, COUNT(*) as count\nFROM wp_users\nGROUP BY month\nORDER BY month DESC;<\/code><\/pre><\/div><h3 class=\"wp-block-heading\">Get user with post count<\/h3><div class=\"code-block-wrapper\"><div class=\"code-block-header\"><span class=\"code-block-language\">sql<\/span><button class=\"code-copy-btn\" aria-label=\"Copy code\"><svg><use href=\"https:\/\/chubes.net\/wp-content\/themes\/chubes\/assets\/icons\/chubes.svg#icon-copy\"><\/use><\/svg><\/button><\/div><pre data-chubes-enhanced class=\"wp-block-code language-sql\"><code class=\"language-sql\">SELECT u.*, COUNT(p.ID) as post_count\nFROM wp_users u\nLEFT JOIN wp_posts p ON u.ID = p.post_author \n  AND p.post_type = &#039;post&#039; \n  AND p.post_status = &#039;publish&#039;\nGROUP BY u.ID\nORDER BY post_count DESC;<\/code><\/pre><\/div><h2 class=\"wp-block-heading\">WordPress API Functions<\/h2><ul class=\"wp-block-list\"><li><code>get_user_by( $field, $value )<\/code> &#8211; Get user by ID, slug, email, or login<\/li><li><code>get_userdata( $user_id )<\/code> &#8211; Get user data object<\/li><li><code>wp_get_current_user()<\/code> &#8211; Current logged-in user<\/li><li><code>wp_create_user()<\/code> &#8211; Create new user<\/li><li><code>wp_update_user()<\/code> &#8211; Update user<\/li><li><code>wp_delete_user()<\/code> &#8211; Delete user<\/li><li><code>username_exists()<\/code> &#8211; Check if username taken<\/li><li><code>email_exists()<\/code> &#8211; Check if email registered<\/li><\/ul><h2 class=\"wp-block-heading\">Security Notes<\/h2><ul class=\"wp-block-list\"><li><code>user_login<\/code> cannot be changed after creation<\/li><li><code>user_email<\/code> must be unique<\/li><li><code>user_activation_key<\/code> is time-limited and single-use<\/li><li><code>user_status<\/code> is deprecated\u2014spam status stored in usermeta<\/li><\/ul>","protected":false},"excerpt":{"rendered":"<p>Stores WordPress user accounts. Core authentication and profile data. Schema Column Type Null Default Description ID bigint(20) unsigned NO auto_increment Unique user identifier user_login varchar(60) NO &#8221; Username for login&#8230;<\/p>\n","protected":false},"featured_media":0,"template":"","meta":{"footnotes":""},"tags":[],"project":[611],"project_type":[749],"class_list":["post-5594","documentation","type-documentation","status-publish","hentry","project-database-schema","project_type-wordpress-reference"],"project_info":{"id":589,"name":"WordPress Core","slug":"wordpress-core"},"project_type_info":{"id":749,"name":"WordPress Reference","slug":"wordpress-reference"},"_links":{"self":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation\/5594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation"}],"about":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/types\/documentation"}],"version-history":[{"count":3,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation\/5594\/revisions"}],"predecessor-version":[{"id":8930,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/documentation\/5594\/revisions\/8930"}],"wp:attachment":[{"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/media?parent=5594"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/tags?post=5594"},{"taxonomy":"project","embeddable":true,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/project?post=5594"},{"taxonomy":"project_type","embeddable":true,"href":"https:\/\/chubes.net\/wp-json\/wp\/v2\/project_type?post=5594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}