wordpress database structure

A Beginners Tutorial to WordPress Database Structure

Table of Contents

One of the numerous reasons for WordPress' success is its beginner-friendly approach, which needs users to have little to no technical skills. This makes learning the fundamentals of website development as simple as using the WordPress interface, plugins, and themes.

WordPress, which was first released over a decade ago, has grown to become the most popular website-building software on the planet. No prior understanding of the underlying structure is required to install WordPress and administer the site. However, you may find yourself in a circumstance where you need to know about the WordPress database schema.

Anyone who wants to go beyond the fundamentals, however, should educate oneself with WordPress to some extent.

This is where we'll be concentrating our efforts today. We'll also go over some of the most important database maintenance procedures that every webmaster should be familiar with.

Getting to know WordPress databases

Before we get into the specific activities you may take on a WordPress database, let's have a look at what a WordPress database is, what it includes, and how you can update it with the phpMyAdmin tool.

This will provide you a greater understanding of WordPress database structure and explain why some activities are performed the way they are.

What is a WordPress database, and what are the tables in it?

Databases aren't only for WordPress; they're a way of acquiring and storing data that's well-organized for every CMS. WordPress, in most situations, employs MySQL as its database management system, with PHP serving as a means of accessing and saving data in those MySQL databases.

Despite the fact that the complexity of a MySQL database might change, the general structure remains consistent. It is separated into tables, which have rows and columns, with the accompanying database data saved inside the fields that make up those rows or columns.

This structure is simple to browse, and anyone with only a basic understanding of its significance can readily change the data fields.

WORDPRESS DATABASE TABLES DIAGRAM

In terms of data, the WordPress database stores all of the information needed to run a WordPress site. This includes all of the material on all of your pages, posts, and custom posts, as well as content connected to its taxonomies, all user-related data, WordPress site-wide settings, and all of your themes and plugins' options.

A database stores all of the information that a WordPress website requires to run effectively.

With that in mind, let's look at the types of tables that can be found in a WordPress database structure. wp posts, wp postmeta, wp comments, wp comment meta, wp options, wp users, wp user meta, wp terms, wp termmeta, wp term relationships, wp term taxonomy, and wp links are the 12 tables created by WordPress during its normal 5-minute installation.

These tables are essential for managing your website and are included in any fresh WordPress installation. When you add new plugins to your website, those plugins may create more tables in your database, which can increase their number.

However, we will concentrate on a handful of the most essential tables from the 12 given above in this guide. We recommend reading the database description on the WordPress Codex for more details on all the tables.

The wp posts table in your WordPress database is perhaps the most crucial. It contains information on your posts, pages, menu items, attachments, and custom post kinds, among other things.

It stores the ID of a post, its content, author ID, date of creation, excerpt, title, comment status (if it can be commented on), and publish status (e.g. ‘pending,' ‘publish,' or ‘private'), among other things.

The wp comments database stores all of the comments that have been left on your site, as well as any relevant information about them.

It saves the remark's content, author, e-mail, URL, and IP address, as well as the date and type of the comment (comment, pingback, or trackback).

The wp users database stores information on the people who manage your WordPress site. The user ID, username and password, user email, and URL are among the fields.

The wp options table stores information about your current plugins and their settings, as well as theme options, widget content, and cache. It contains the name of the stored setting, its value, and whether or not it is autoloaded.

Tables for WordPress Multisite

wp site: This table provides network-related information like the IDs assigned to each subsite, the site's path, and so on.

wp sitemeta: This one has supplementary network information like the site name, admin email, admin user ID, and so forth.

wp blogs: This table contains information about each subsite. All information associated with the subsites is maintained here, such as the time and date the blog was registered or last updated, if the blog is publicly available or archived, and so on.

wp blog versions: This table keeps track of the subsites' WordPress versions. So that when you upgrade your WordPress version, it understands which sites require an upgrade and which do not.

wp signups: The wp signups table contains information about the multisite's registered users. However, in a multisite network, you can prevent new users from registering. You won't see any data in this table if registration is disabled.

wp registration log: The information of the admin user who establishes a new subsite is stored in this table.

What exactly is phpMyAdmin and how do you utilize it?

phpMyAdmin is a web-based database management tool, to put it simply. It allows you to manage MySQL databases from a web browser.

You can use it to conduct or run all MySQL operations using queries or the given interface. You may import and export databases, as well as update tables, rows, and columns.

We'll show you how to do the most common database operations that a WordPress webmaster would need in the next section.

Now that you know what phpMyAdmin is and what it does, let's look at how to use it and what problems you could encounter. Because this step is required for any of the management actions described below, you should read through it carefully and return to it if necessary.

With that in mind, we'll demonstrate how to use phpMyAdmin through cPanel and localhost. If your web hosting platform isn't cPanel, we recommend contacting your hosting provider for more information on how to use phpMyAdmin.

If you're logged in to cPanel, you can get to phpMyAdmin by going to the Databases area and clicking on the phpMyAdmin option.

PHPMYADMIN DATABASES

You may access your database by finding it in the list of databases on the left and clicking on it to open it when the phpMyAdmin application opens.

ACCESS YOUR DATABASE

Add PHPMyAdmin to the end of your localhost address to gain access to phpMyAdmin.

In most cases, this entails typing http://localhost/phpmyadmin/ into the address bar of your browser. This address may also include a port number in some circumstances; this occurs when your Apache server isn't tied to the usual port 80.

The phpMyAdmin login screen can be found by going to the relevant phpMyAdmin address. To log in, type your MySQL username and password into the login box and click the Go button.

MYSQL USERNAME AND PASSWORD

Locate your localhost website's database from the list on the left and click on it to see the tables it includes, just like with cPanel.

LOCALHOST DATABASE

When trying to access your MySQL database, you may run into two problems: not knowing your MySQL credentials and not knowing your database name. Let's look at how you can deal with both.

You merely need to look at your wp-config.php file to figure out your MySQL credentials and database name. This file is found in the public html directory of the WordPress root directory.

Simply look for the wp-config.php file in the site's directory on your computer if you're working on localhost. Return to the main cPanel view and click the File Manager option in the Files area towards the top if you're working on a live site.

CPANEL FILE MANAGER

Next, go to your root WordPress directory (public html), locate the wp-config.php file, right-click it, and choose View from the dropdown menu.

WP CONFIG FILE LOCATION

Find the following line towards the top of the file when it opens:

define(‘DB_NAME’, ‘your_database_name’);

define(‘DB_NAME’, ‘your_database_name’);

Also, keep an eye out for these two sentences.

define( 'DB_USER', 'your_username' );

and

define( 'DB_PASSWORD', 'your_password' );

Your MySQL username and password will be displayed. Keep in mind that on your end, the placeholder names we used will be replaced with the relevant information.

ENTERING DATABASE CREDENTIALS IN WORDPRESS

Proceed as described previously once you've determined your database name, MySQL username, and password.

You may have noticed that all of the tables in your database have the same prefix as an added piece of advice. The default WordPress database prefix is wp_, and we'll use that throughout this course.

You can, however, alter the default database prefix, which some WordPress users do for security concerns. If your database prefix has been modified, you should search for tables with the same names (e.g. posts, comments, users, etc.) but with your own database prefix.

Instead of looking for the wp users table, seek for yourprefix users, where yourprefix is replaced with your actual database prefix.

What is the best ways to manage a WordPress database?

Now that you know what a WordPress database structure looks like and how to access its tables, let's go over the many operations you can do with it.

There are several options available to you, and they usually rely on your goals. As a result, we'll go through the most important procedures in the parts below, which are essential for maintaining any WordPress website. Let's get started.

Creating a backup of the database

WordPress saves all of the website's content, as well as any modifications made to the database. Given this understanding, it is evident that a database backup is an essential aspect of securing the website in the event that something goes wrong.

It will be the first operation covered in this guide. We'll show you how to make a manual database backup in the paragraphs below. You should be aware that there are alternative methods for creating database backups, including database plugins.

Log in to phpMyAdmin and locate your website's database to create a database backup. Then, in the top portion of your screen, click on the Export tab after clicking on it once to open it.

EXPORT DATABASE TABLES

You can export the database as a .sql file to use as a database backup on this tab. To do so, select the export method and select SQL as the format, which will be selected by default.

You have two options for exporting: Quick and Custom. You can define which tables should be exported using the Custom approach, and you'll have various format-specific options.

However, we recommend choosing the Quick way unless you are familiar with those alternatives.

EXPORT DATABASE

This will begin the download of your-database-name.sql, the backup file (with the your-database-name part replaced accordingly).

We recommend creating a database backup before attempting any of the other database procedures we'll cover in this post now that you know how to do so.

Importing data from a database

Importing a database is another important database administration skill to acquire early on. Its principal functions are to restore a secure database backup in the event of website failures or to import an exported database during website migrations.

However, because database import is a delicate operation, there are a few things to keep in mind before you begin.

To begin, if you import a database file with the same name as an existing database, all equivalent tables in that database will be overwritten.

If this happens to your website database, you will lose all of the content on the site.

As a result, importing a database file with the same name as an existing database is not recommended. Instead, we recommend creating a new database and then importing the .sql file's content into it.

Below, we'll walk you through the steps you'll need to take.

If you want to restore a backup database, we recommend removing the existing database's tables and then importing the backup as described below.

Click the Databases tab in the top section of your screen once you've logged into phpMyAdmin. Set a name for your new database in the input field under the Create database section.

After that, click the Create button while keeping the Collation option selected to create a new database.

CREATE DATABASE IN PHPMYADMIN

Then, at the top portion of the screen, select the new database and click the Import tab.

IMPORT DATABASE IN NEW DATABASE

Select the database.sql file in the file dialogue window that opens by pressing the Choose file button in the main portion of the screen.

Then, to import the file, change the format to SQL and press the Go button.

IMPORTING DATABASE

You'll have to wait a few moments for the file to be uploaded.

By uploading it once it's finished, you'll be able to see all of the queries that were performed during this operation.

If you encounter a WordPress Database connection error check out our post here for help: WordPress: Error establishing a database connection

WordPress database optimization

If you've had a WordPress website for a long, it's likely that your database hasn't been optimized. It could have old data and even tables from plugins and themes that have been removed from the website.

It's also possible that the existing data isn't being stored properly, necessitating the addition of more storage space.

We recommend optimizing your database on a frequent basis because a non-optimized database might degrade the overall speed of your website and, in certain situations, force you to pay for more storage space than you need.

We'll walk you through the process of doing so with phpMyAdmin.

However, just in case, you should create a database backup first. After that, you can move on to the next step, which is outlined below.

To optimize your WordPress database, go to phpMyAdmin, find your database, then double-click it to open it.

OPEN WEBSITE DATABASE

Then, at the bottom, click the Check all link to check all the tables in the database, and then select the Optimize table option from the selection next to it.

OPTIMIZE WEBSITE DATABASE

When you pick the Optimize table option, a query is conducted on all of the tables you've specified. You'll have to wait till the task is finished.

Changing the password on a WordPress site

We've all had the misfortune of being unable to get into a website, whether due to a forgotten password or one that was changed without notice.

While WordPress provides a reasonably simple method of recovering a password, it is not without flaws. As a result, learning various methods of changing the password and regaining access to the WordPress dashboard can be incredibly useful.

Changing the password directly in the website's database is one of the alternatives. Below, we'll teach you how to accomplish it.

Locate the wp users table in your website's database and click on it to access it.

WP USERS TABLE OF WORDPRESS

You'll find a list of all active users here, along with their data. Begin by searching the user login column for the user whose password you want to change.

Then, on the same row as that user's username, click the Edit button.

SELECT WORDPRESS USER

Locate the row in the following window that has the field user pass. Set the function name to MD5 and then replace the current password value with your new password from within this row.

Press the Go button below to save your changes.

CHANGE WORDPRESS USER PASSWORD

After that, go to the login URL for your website and log in using your username and newly established password. If you've been locked out of the dashboard, this will allow you to get back in.

Changing a WordPress login is a simple process.

If you're concerned about the security of your WordPress admin login or simply want to make it more consistent with your brand, you may change it directly in the database. As we shall see below, this may be done in a very short amount of time.

To update your WordPress username, go to the wp users table in your website's database and look at the list of currently accessible users.

SELECT WP USER TABLE

Then, within its row, identify the username you want to alter and click the Edit button.

SELECT USER TO CHANGE USERNAME

Change the current user login value to your preferred username on the next screen. Then click the Go button below to save your changes.

CHANGE USERNAME OF THE USER IN WORDPRESS

You will get a success message shortly after finishing the previous step, stating that the username has been updated.

You've improved the security of your website by doing so. There are, however, additional things you can do to increase the security of your site, particularly in terms of database security.

We'll go over the further database and website security tips at the end of this post.

Adding a new administrator user

If you're locked out of your WordPress dashboard, you can leverage your database to help you recover access by creating a new admin account.

Knowing how to do it can also come in handy if you've erased your previous administrator account by accident. We'll show you how to create a new admin user by editing the website's database in this part.

You should also know that you're not limited to admin user roles; you can add any type of new user to your database.

To do so, open phpMyAdmin and click on the database for your website. After that, look for the wp users table and click on it.

ADD USER IN WORDPRESS

You will be placed in the Browse tab when you access the users table. By clicking on it, you can go to the Insert tab (you can find it in the top section of your screen).

INSERT NEW USER DETAILS

User login, user pass (with the MD5 encrypting method selected), user nickname, user email, user url, user registered, and display name are all required fields when creating a new user. After you've done that, click the Go button below.

NEW USER DETAILS ENTER IN WORDPRESS

Then, click to return to the Browse tab. Because we didn't specify an ID for the newly formed user, one will be generated automatically and displayed under the Browse tab.

Make a mental note of the ID, since it will be necessary for the following steps.

ID OF THE NEW USER CREATED IN WORDPRESS

Return to your database's main panel and choose the wp usermeta table by clicking on it.

WP USERMETA TABLE WORDPRESS

Switch to the Insert tab after accessing the wp usermeta table. You'll see a screen with two portions that look like the one below.

INSERT NEW USER META DETAILS

Assigning a user role to the new user is the final and most crucial step. This phase, strictly speaking, distinguishes between various user roles because it is here that the proper privileges are added.

Let's look at how to give a newly created user administrative rights.

Add the user's ID as the value of the user id column, and wp capabilities as the value of the meta key column in the first part.

Then, as the value of the meta value column, add the following code:

a:1:{s:13:"administrator";b:1;}
META VALUE FOR NEW USER IN WORDPRESS

Then, in the second section, add the user id value to the user id field. Also, set the meta key value to wp user level and the meta value to 10.

Finally, click the Go button to give your new user these privileges.

Changing the URLs of WordPress in the database

There are a variety of reasons why you might need to update your site's WordPress URLs, specifically the WordPress and Site addresses, on a regular basis.

Switching from HTTP to HTTPS, migrating a website from localhost to a live server, and troubleshooting login redirect issues are just a few examples.

Whatever the cause, understanding numerous ways to accomplish this procedure might be useful, especially if you've been locked out of your WordPress dashboard due to technical difficulties.

We'll show you how to update your WordPress URLs by adjusting the equivalent parameters in your database in this section.

Log in to phpMyAdmin to change the WordPress URLs from the database. Then, by clicking on the database for your website, access the wp options table.

All of the rows in that table will be shown in the center of your screen. Find the two rows that have the option name values site URL and home.

WP OPTIONS TABLE IN WORDPRESS

Click the Edit button within that row to update the siteurl.

EDIT SITE URL WORDPRESS

Insert your new site URL as the value in the option value field on the next screen, then click the Go button to save it.

INSERT NEW SITE URL IN WORDPRESS DATABASE

Edit your home URL in the same way—just follow the procedures outlined above to change the home choice.

In all circumstances, a notification indicating what was altered will appear immediately after you complete the procedures.

If you were having login troubles, you should try logging in again to see if they've been addressed.

Deactivating WordPress Plugins

Faulty plugins are one of the most common causes of WordPress errors and website troubles in general. These issues are caused by plugin incompatibilities or incompatibilities between plugins and the theme/WordPress core files.

Deactivating all of your plugins and seeing what happens is a quick way to see if a problem you're having is caused by them. If the problem goes away after that, it's likely that one of the plugins was to blame.

You can find the defective plugin by re-activating all of them and then disabling them one by one until the error is rectified. The plugin that was deactivated last before the issue was repaired is faulty in this process.

The troubleshooting method we just discussed is fairly straightforward and, in many cases, very helpful.

Knowing how to disable WordPress plugins in numerous methods comes in handy in these situations. It can also be useful for solving a variety of WordPress difficulties.

We'll go over how to disable WordPress plugins in the database as the following WordPress database management procedure.

Open your database from the list on the left after logging into phpMyAdmin. Within, look for the wp options table and click on it to open it.

WORDPRESS WP OPTIONS TABLE

Locate the active plugins field in the options table and click the Edit button next to it.

If you're having trouble finding it, try showing at least 50 rows per page instead of the normal 25. Change the number of rows option near the bottom of the main phpMyAdmin section to accomplish this.

ACTIVE PLUGINS TABLE IN WORDPRESS DATABASE STRUCTURE

Replace the current value in the option value row with a:0:{} and click the Go button once you've accessed the active plugins field for editing.

VALUE TO DEACTIVATE WORDPRESS PLUGINS IN DATABASE

This will turn off all of your WordPress plugins. After that, you can proceed to troubleshoot the problem.

Active WordPress Theme Change

Changing your WordPress theme is another database administration procedure that can help in troubleshooting WordPress errors. A problem you're having could be caused by the coding of your current theme, almost as frequently as it happens with plugins.

To determine whether this is the case, just activate one of the default WordPress themes on your website and examine the results. If the problem goes away after moving from your current theme to the default, it's likely that the theme you were using was the source of the issue.

We'll see how to use the database to update your active WordPress theme. If you are unable to enter your WordPress dashboard, you can utilize this option.

Please note that this method requires that you have a default WordPress theme (e.g. Twenty Twenty-One) installed on your server.

To open the wp options table, go to your website's database and click on it.

WP OPTIONS TABLE IN WORDPRESS FOR THEME SETTINGS

Then, in the main section of your screen, look for the template and stylesheet fields. If you can't locate those options right away, use the option near the bottom of the main area to increase the number of rows visible per page.

CHANGE THEME OF WORDPRESS IN DATABASE STRUCTURE

Click the Edit button to make changes to the row with the template.

EDIT TEMPLATE VALUE IN WORDPRESS DATABASE STRUCTURE

Then locate the option value box and replace the value with the name of the theme you want to activate.

There are two requirements that must be met in order for this to operate. One, the theme must be installed on your server, and two, the inserted name must match the /wp-content/themes directory's theme folder name.

When you've fulfilled those requirements, click the Go button to save your changes.

CHANGING THEME OF WORDPRESS IN DATABASE MYSQL

Then, in the same manner as stated previously, modify the row with the CSS value.

Find And Replace Function In Database

If you've ever added SSL to your site, moved it from localhost to a live server, or cloned it, you know how crucial it is to replace all the URLs. Most of the time, this modification is performed with database-altering plugins or by running appropriate queries in the database. We'll demonstrate how the latter works in this post.

Before running search-replace throughout your whole database, we strongly advise you to build a database backup if you haven't previously. The effects of anything going wrong would be irreversible.

You can proceed as detailed below once you've created and safely stored a database backup.

Locate your website from the list on the left and click on its database after logging into phpMyAdmin.

WORDPRESS DATABASE MYSQL

Then, by clicking on the SQL tab (at the top of the screen), switch to it.

FIND AND REPLACE FUNCTION IN WORDPRESS DATABASE

As previously said, you should have a database backup before proceeding with this operation—any mistakes made beyond this point could cost your website a lot of money.

If you already have a backup, you can use the code indicated below to restore it. Paste that into the query window, but make sure to replace the placeholders with your own.

The URLs should also be entered without the trailing slashes. When you're finished, click Go to update the URLs.

UPDATE wp_posts SET post_content = REPLACE (post_content, 'your-old-website-url', 'your-new-website-url');
QUERY TO SEARCH AND REPLACE IN DATABASE OF WORDPRESS

You can do a test run if you're not sure about doing the search-replace on the first try.

Instead of pressing the Go button, press the Simulate inquiry button. You may then re-run the query, this time for real, and make the adjustments after seeing the results of the test run.

The query we described above replaces all instances of your-website-url in the content of all your articles with your-new-website-url.

The URLs in custom fields for posts and users can be changed using similar queries. Here's an example:

UPDATE wp_postmeta SET meta_value = replace(meta_value,'your-old-website-url','your-new-website-url'); UPDATE wp_usermeta SET meta_value = replace(meta_value, 'your-old-website-url','your-new-website-url');

Keeping the database and website secure

We looked at some important WordPress database management operations in the previous part, which would be valuable to a wide spectrum of WordPress users. To wrap up this article, we'd want to discuss security, which is critical for any WordPress website and database.

Even while there is no perfect defense against hacking assaults, there are numerous things you can do to improve the overall security of your website.

Some WordPress users choose to modify the database prefix, as we indicated earlier. This is a simple yet effective security solution for preventing SQL injection attacks.

In order to recover sensitive user information, attackers can take advantage of the WordPress database's well-known structure and default table prefix (wp_).

You can introduce a difficult-to-guess element to your website's security against SQL injection attacks by modifying the default database prefix.

Additionally, you should employ difficult-to-crack usernames and passwords to help protect your website from brute-force attacks.

Despite the fact that this suggestion appears to be basic sense, many users continue to use passwords that are easy to guess (such as 12345, Password, Admin…).

You should also make regular backups of your entire website and store them somewhere secure. If something goes wrong, you'll be able to rapidly recover your site.

Finally, the best piece of advice we can provide you is to research and utilize a good WordPress security plugin. The finest security plugins provide a variety of security checks as well as malware firewalls that are regularly updated to protect against various threats.

Some of those plugins are available in both paid and free versions, with the paid versions providing enhanced security, customer support, and assistance with website cleanup following hacking assaults.

As a result, everyone should make choosing a high-quality security plugin a priority—it will provide excellent protection for your WordPress database structure, files, and website as a whole.

Final Words

Working with a WordPress database structure can be intimidating for many WordPress users, especially those who are new to the platform. Most people assign database-related activities to someone with more technical expertise.

Databases, on the other hand, hold all website material, and learning even the fundamentals of WordPress database management will help you improve your overall WordPress skills. This will help you become more acquainted with WordPress, allowing you to complete daily activities more swiftly and solve some of the most typical WordPress difficulties with ease.

This tutorial showed you ways to comprehend the structure of a standard WordPress database and how to perform some useful operations on it. We also covered how to change a database's tables, rows, and columns to be able to perform those operations throughout the text.

Finally, we'd want to emphasize the necessity of performing regular database backups one last time. They're particularly useful to have before making any changes in case something goes wrong.

Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

One Response

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: