Move, Rename WordPress wp-content, Plugins & Uploads Directory

Print Page
WordPress Logo

WordPress has a feature which gives you the ability to relocate and rename the “wp-content” directory that holds the themes, plugins and uploaded files used by your blog. Moving this directory is good from a security perspective too.

Here I will show how you can move the wp-content and plugins directory to a custom location on your web server. Update: From WordPress 3.5+, you can also change the default media upload location (instructions below), aka Uploads directory found inside wp-content.

Move WordPress wp-content directory

To move the wp-content directory, add the below two define() directives to your WordPress wp-config.php (configuration) file, replacing with appropriate paths on your server.

/* Move wp-content directory */
define('WP_CONTENT_DIR', 'new/path/to/wp-content'); // no host name, no trailing backslash
define('WP_CONTENT_URL', '/url/to/wp-content');

The WP_CONTENT_DIR, is used to specify the actual path of the content directory on your server, while the WP_CONTENT_URL speficies the URL through which the contents inside the directory can be accessed.

If you are not sure about the exact path, here’s another way to define path using $_SERVER['DOCUMENT_ROOT'] and $_SERVER['SERVER_NAME'] global variable:

/* Move wp-content directory */
define('WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/content');
define('WP_CONTENT_URL', 'http://' . $_SERVER['SERVER_NAME'] . '/content');

The $_SERVER['DOCUMENT_ROOT'] will construct a path relative to the document root, while $_SERVER['SERVER_NAME'] does the same for your web server.

Move WordPress Plugin Directory

If you want to move the WordPress plugins directory to a custom location, you have to define PLUGIN_DIR in your configuration file, similar to how CONTENT_DIR is defined for wp-content:

/* Move plugins directory */
 define('WP_PLUGIN_DIR', 'new/path/to/plugins');
 define('WP_PLUGIN_URL', '/url/to/plugins');

OR

/* Move plugins directory */
define('WP_PLUGIN_DIR', $_SERVER['DOCUMENT_ROOT'] . '/plugins' );
define('WP_PLUGIN_URL', 'http://' . $_SERVER['SERVER_NAME'] . '/plugins');

Move WordPress Upload directory

To rename or move the upload directory anywhere within the wp-content directory you can use this code:

define( 'UPLOADS', 'wp-content/'.'files' );

Or, if you would like to move it to the root of your server, use this:

define( 'UPLOADS', ''.'uploads' );

Defining path to WordPress plugins folder may also help you resolve problems with those plugins that have a hardcoded path to wp-content.

If at any time you wish to go back to the original structure, simply delete the above added lines from wp-config.php file and move back the folders to the original locations.

13 thoughts on “Move, Rename WordPress wp-content, Plugins & Uploads Directory”

Comments are closed.