Codex

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

Database Description/2.2

wp-alert.png
This article, written to accord with WordPress 2.2, 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 Version 2.2. The only database supported by WordPress Version 2.2 is MySQL version 4.0 or greater.

For the WordPress 2.0.x versions, see description of the database for WordPress 2.0.x.

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.2 Tables (10)
Table Name Description Relevant Area(s) of WordPress User Interface
wp_categories The categories for both posts and links are found within the wp_categories table. Administration Panels >> Manage >> Categories
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_link2cat Each link in the wp_links table is associated with at least one category from the wp_categories table and this association is maintained in the wp_link2cat table. Administration Panels >> Blogroll >> Manage Blogroll
Administration Panels >> Blogroll >> Add Links
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_post2cat Each post in the wp_posts table is associated with at least one category from the wp_categories table and this association is maintained in the wp_post2cat table. Administration Panels >> Write >> Write Post
Administration Panels >> Manage >> Posts >> Edit
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_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_categories

Field Type Null Key Default Extra
cat_ID bigint(20)   PRI NULL auto_increment
cat_name varchar(55)        
category_nicename varchar(200)   IND    
category_description longtext        
category_parent bigint(20)     0  
category_count bigint(20)     0  
link_count bigint(20)     0  
posts_private tinyint(1)     0  
links_private tinyint(1)     0  

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_link2cat

Field Type Null Key Default Extra
rel_id bigint(20)   PRI NULL auto_increment
link_id bigint(20)   IND Pt1 0 FK->wp_links.link_id
category_id bigint(20)   IND Pt2 0 FK->wp_categories.cat_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_post2cat

Field Type Null Key Default Extra
rel_id bigint(20)   PRI NULL auto_increment
post_id bigint(20)   IND Pt1 0 FK->wp_posts.ID
category_id bigint(20)   IND Pt2 0 FK->wp_categories.cat_ID


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(100)        
post_mime_type varchar(100)        
comment_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)