WordPress.org

Ready to get started?Download WordPress

Codex

Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

Database Description/2.3

wp-alert.png
This article, written to accord with WordPress 2.3, is now obsolete. Please take caution when following its contents, as many things may have changed.

The following is an outline and description of the database tables created during the standard installation of WordPress at Version 2.3.

Because WordPress interfaces with this database by itself, you as an end user, shouldn't have to worry much about its structure. If you're Writing a Plugin, however, you may be interested in learning how to interface with the database directly. WordPress provides the wpdb Class to make this task easy.

Table Overview

This section is the overview of all the tables created during the WordPress standard installation. It is followed by specific information of what is in each table.

WordPress 2.3 Tables (10)
Table Name Description Relevant Area(s) of WordPress User Interface
wp_comments The comments within WordPress are stored in the wp_comments table. Comments are created by readers as responses to posts. Comments are managed by administrator via Administration Panels >> Manage >> Comments
wp_links The wp_links holds information related to the links entered into the Blogroll Manager feature of WordPress. Administration Panels >> Blogroll >> Manage Blogroll
Administration Panels >> Blogroll >> Add Links
Administration Panels >> Blogroll >> Import Links
wp_options The Options set under the Administration > Options panel are stored in the wp_options table. Administration Panels >> Options > > General
Administration Panels >> Options > >Writing
Administration Panels >> Options > >Reading
Administration Panels >> Options > >Discussion
Administration Panels >> Options > >Permalinks
Administration Panels >> Options > >Miscellaneous
wp_postmeta Each post features information called the meta data and it is stored in the wp_postmeta. Some tag plugins, and other plugins may add their own information to this table. Administration Panels >> Write >> Write a Post
wp_posts The core of the WordPress data is the posts. It is stored in the wp_posts table. Administration Panels >> Write >> Write a Post
wp_terms The categories for both posts and links and the tags for posts are found within the wp_terms table. Administration Panels >> Manage >> Categories
Administration Panels >> Write >> Write Post
Administration Panels >> Manage >> Posts >> Edit
wp_term_relationships Posts are associated with categories and tags from the wp_terms table and this association is maintained in the wp_term_relationships table. The association of links to their respective categories are also kept in this table. Administration Panels >> Manage >> Categories
Administration Panels >> Write >> Write Post
Administration Panels >> Manage >> Posts >> Edit
wp_term_taxonomy This table describes the taxonomy (category, link, or tag) for the entries in the wp_terms table. Administration Panels >> Manage >> Categories
Administration Panels >> Write >> Write Post
Administration Panels >> Manage >> Posts >> Edit
wp_usermeta Each user features information called the meta data and it is stored in wp_usermeta. Administration Panels >> Users
wp_users The list of users is maintained in table wp_users. Administration Panels >> Users


Table Details

The following are the specific fields in each of the tables created during the standard WordPress installation.

Table: wp_comments

Field Type Null Key Default Extra
comment_ID bigint(20) unsigned   PRI NULL auto_increment
comment_post_ID int(11)   IND 0 FK->wp_posts.ID
comment_author tinytext        
comment_author_email varchar(100)        
comment_author_url varchar(200)        
comment_author_IP varchar(100)        
comment_date datetime     0000-00-00 00:00:00  
comment_date_gmt datetime     0000-00-00 00:00:00  
comment_content text        
comment_karma int(11)     0  
comment_approved enum('0','1','spam')   IND 1  
comment_agent varchar(255)        
comment_type varchar(20)        
comment_parent bigint(20)     0 FK->wp_comment.ID
user_id bigint(20)     0 FK->wp_users.ID

Table: wp_links

Field Type Null Key Default Extra
link_id bigint(20)   PRI NULL auto_increment
link_url varchar(255)        
link_name varchar(255)        
link_image varchar(255)        
link_target varchar(25)        
link_category bigint(20)   IND 0 FK->wp_categories.cat_ID
link_description varchar(255)        
link_visible enum('Y','N')   IND Y  
link_owner int(11)     1  
link_rating int(11)     0  
link_updated datetime     0000-00-00 00:00:00  
link_rel varchar(255)        
link_notes mediumtext        
link_rss varchar(255)        


Table: wp_options

Field Type Null Key Default Extra
option_id bigint(20)   PRI NULL auto_increment
blog_id int(11)   PRI 0  
option_name varchar(64)   PRI&IND    
option_can_override enum('Y','N')     Y  
option_type int(11)     1  
option_value longtext      
option_width int(11)     20  
option_height int(11)     8  
option_description tinytext      
option_admin_level int(11)     1  
autoload enum('yes','no')     yes  


Table: wp_postmeta

Field Type Null Key Default Extra
meta_id bigint(20)   PRI NULL auto_increment
post_id bigint(20)   IND 0 FK->wp_posts.ID
meta_key varchar(255) YES IND NULL  
meta_value longtext YES   NULL  


Table: wp_posts

Field Type Null Key Default Extra
ID bigint(20) unsigned   PRI NULL auto_increment
post_author bigint(20)     0 FK->wp_users.ID
post_date datetime     0000-00-00 00:00:00  
post_date_gmt datetime     0000-00-00 00:00:00  
post_content longtext        
post_title text        
post_category int(4)     0 FK->wp_categories.cat_ID
post_excerpt text        
post_status enum('publish','draft','private','static','object','attachment','inherit','future')   IND publish  
comment_status enum('open','closed','registered_only')     open  
ping_status enum('open','closed')     open  
post_password varchar(20)        
post_name varchar(200)   IND    
to_ping text        
pinged text        
post_modified datetime     0000-00-00 00:00:00  
post_modified_gmt datetime     0000-00-00 00:00:00  
post_content_filtered text      
post_parent bigint(20)     0 FK->wp_posts.ID
guid varchar(255)        
menu_order int(11)     0  
post_type varchar(20)     post  
post_mime_type varchar(100)        
comment_count bigint(20)     0  

Table: wp_terms

Field Type Null Key Default Extra
term_id bigint(20)   PRI   auto_increment
name varchar(55)        
slug varchar(200)   UNI IND    
term_group bigint(10)     0  

Table: wp_term_relationships

Field Type Null Key Default Extra
object_id bigint(20)   PRI Pt1 0  
term_taxonomy_id bigint(20)   PRI Pt2, IND 0 FK->wp_term_taxonomy.term_taxonomy_id

Table: wp_term_taxonomy

Field Type Null Key Default Extra
term_taxonomy_id bigint(20)   PRI   auto_increment
term_id bigint(20)   UNI IND Pt1 0 FK->wp_terms.term_id
taxonomy varchar(32)   UNI IND Pt2    
description longtext        
parent bigint(20)     0  
count bigint(20)     0  

Table: wp_usermeta

Field Type Null Key Default Extra
umeta_id bigint(20)   PRI NULL auto_increment
user_id bigint(20)     '0' FK->wp_users.ID
meta_key varchar(255)   IND NULL  
meta_value longtext   IND NULL  


Table: wp_users

Field Type Null Key Default Extra
ID bigint(20) unsigned   PRI NULL auto_increment
user_login varchar(60)   UNI & IND    
user_pass varchar(64)        
user_nicename varchar(50)        
user_email varchar(100)        
user_url varchar(100)        
user_registered datetime     0000-00-00 00:00:00  
user_level int(2) unsigned     0  
user_activation_key varchar(60)      
user_status int(11)     0  
display_name varchar(250)        

Resources