WordPress Core Database Tables

Every WordPress installation includes 12 core database tables. These are created by WordPress itself — not by plugins. Here's what each one stores.

wp_postsWP Core

The central WordPress table. Stores all posts, pages, custom post types, revisions, attachments, and navigation menu items.

Key columns:IDpost_authorpost_datepost_contentpost_titlepost_statuspost_type

Stores custom fields (metadata) attached to posts. This is where post metadata, ACF fields, and plugin-specific post data is stored.

Key columns:meta_idpost_idmeta_keymeta_value

Stores all comments, pingbacks, and trackbacks.

Key columns:comment_IDcomment_post_IDcomment_authorcomment_datecomment_contentcomment_approved

Stores metadata for comments as key-value pairs.

Key columns:meta_idcomment_idmeta_keymeta_value
wp_termsWP Core

Stores taxonomy terms — categories, tags, and any custom taxonomy terms.

Key columns:term_idnameslugterm_group

Associates terms with their taxonomy (category, post_tag, nav_menu, etc.) and stores term counts.

Key columns:term_taxonomy_idterm_idtaxonomydescriptioncount

The join table connecting posts (and other objects) to taxonomy terms.

Key columns:object_idterm_taxonomy_idterm_order

Stores metadata for taxonomy terms as key-value pairs.

Key columns:meta_idterm_idmeta_keymeta_value
wp_optionsWP Core

The WordPress configuration store. Holds site settings, plugin options, widget configurations, and any data plugins want to persist globally.

Key columns:option_idoption_nameoption_valueautoload
wp_usersWP Core

Stores WordPress user accounts including admins, editors, and subscribers.

Key columns:IDuser_loginuser_passuser_emailuser_registereduser_status

Stores metadata for users — roles, capabilities, profile data, and plugin-specific user settings.

Key columns:umeta_iduser_idmeta_keymeta_value

About table prefixes

By default, WordPress uses the wp_ prefix for all tables. This can be changed in wp-config.php using the $table_prefix variable. If your site uses a custom prefix like mysite_, all table names above will use that prefix instead.