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.0

wp-alert.png
This article, written to accord with WordPress 2.0, 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 V 2.0.x. At the time, the only database supported by WordPress was MySQL version 3.23.23 or greater.

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.0 Tables (10)
Table Name Description Relevant Area(s) of WordPress User Interface
wp_categories The post categories for WordPress are found within the wp_categories table and they feature five columns. Refer to Administration Panels >> Manage >> Categories
wp_comments The comments within WordPress are stored in the wp_comments table which contains 15 columns. Comments are created by readers as responses to posts. Comments are managed by administrator via Administration Panels >> Manage >> Comments
wp_linkcategories The wp_linkcategories hold the information related to the links entered into the Links_Manager feature of WordPress. It has 13 columns. Administration Panels >> Links >> Link Categories
wp_links The wp_links holds information related to the links entered into the Links_Manager feature of WordPress. It has 14 columns. Administration Panels >> Links >> Manage Links
Administration Panels >> Links >> Add Links
Administration Panels >> Links >> Import Links
wp_options The Options set under the Administration > Options panel are stored in the wp_options table and it has 11 columns. 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 a category from the wp_categories table and this association is maintained in the wp_post2cat table and it has 3 columns. 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 which has 4 columns.  
wp_posts The core of the WordPress data is the posts. It is stored in the wp_posts table which has 21 columns. Administration Panels >> Write >> Write a Post
wp_usermeta Each user features information called the meta data and it is stored in wp_usermeta which has 4 columns.  
wp_users The list of users is maintained in table.wp_users, which has 22 columns. 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 FK->wp_categories.cat_ID
category_count bigint(20)     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_linkcategories

Field Type Null Key Default Extra
cat_id bigint(20)   PRI NULL auto_increment
cat_name tinytext        
auto_toggle enum('Y','N')     N  
show_images enum('Y','N')     Y  
show_description enum('Y','N')     N  
show_rating enum('Y','N')     Y  
show_updated enum('Y','N')     Y  
sort_order varchar(64)     rand  
sort_desc enum('Y','N')     N  
text_before_link varchar(128)     <li>  
text_after_link varchar(128)     <br />  
text_after_all varchar(128)     </li>  
list_limit int(11)     -1  


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_linkcategories.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')   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

(Added to WP 2.0)

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)