The File Structure of WordPress


user –> PHP —> Server –> MySQL database

user <– html <–

WordPress 4.2.2 is 21.6 MB for 1311 items (files and folders)

3 main folders in root directory — most of which are php files and some css

1. wp_admin — files for the dashboard — writing posts, moderating comments, installing plugins and themes are done via the WordPress dashboard.  Roles determine what you are allowed to do here.  An administrator is allowed full access followed by the Editor, then the Contributor and finally the Subscriber.  You can access the dashboard via  If you’re not logged in this would bring up the login page.

2. wp_includes  — backend stuff and alot of classes for WordPress to function.

3. wp_content  — three folders:  (modify .htaccess file (hypertext access file) to limit access within this folder)  — this is where most of the changes take place.  When I do my incremental backups I just backup this folder.  Don’t hack the core!

a. themes  — you need at least one theme to operate

b. plugins  — install zero or many

c.  uploads  — all non-textual data stored here — images, videos, audio.

wp-config.php file  — it is recommended that you put this file above your public_html folder or root directory because you don’t want to make this file public.  This is where you put the credentials for WordPress to read and write to the database


  • Header – header.php
  • Sidebar/Menu – sidebar.php
  • Content – index.php, single.php, page.php, category.php, author.php, search.php, etc.
  • Footer – footer.php

comment at top of wp-load.php

* Bootstrap file for setting the ABSPATH constant
* and loading the wp-config.php file. The wp-config.php
* file will then load the wp-settings.php file, which
* will then set up the WordPress environment.
* If the wp-config.php file is not found then an error
* will be displayed asking the visitor to set up the
* wp-config.php file.
* Will also search for wp-config.php in WordPress’ parent
* directory to allow the WordPress directory to remain
* untouched.
* @internal This file must be parsable by PHP4.
* @package WordPress
/** Define ABSPATH as this file’s directory */
define( ‘ABSPATH’, dirname(__FILE__) . ‘/’ );