
Change Single WP site into Multi-Site (MS)
WordPress Multisite is an excellent feature. Even if you want to use only one site, you’d better to create a MS wordpress installation, and then use the first sub-site as the MAIN SINGLE SITE. (If you dont know MS functionality fully, at first, I RECOMMEND YOU TO SPEND ABOUT A HALF AN HOUR to understand what it is. You can read about it here )
Then, you can start:
(Step 1) Setup the main domain
Let’s say, you want to setup MultiSite WordPress at example.com, having like:
example.com/jamesexample.com/elsa- etc…
At first, simply enable MS feature there (read this or this).
Now let’s say, you are migrating james.de (or even example.com) into example.com/james. In example.com dashboard, create a sub-site named james. Now, remember which ID is assigned to that sub-site

Let’s say, it is 2 (note usage of this number in the rest of this tutorial. OF COURSE, YOU SHOULD CHANGE IT WITH YOUR ACTUAL ID).
Continue reading…
(Step 2) edit SQL with phpMyAdmin
In most cases, I wont recommend to use the built-in Export/Import feature in such cases, because you might lose IDs, permalinks and etc.. So, the best way is to migrate UNTOUCHED DB correctly. During the migration, we will have to REPLACE SOME STRINGS INSIDE DATABASE, for which I HIGHLY RECOMMEND Database Migrator script (instead of simple TEXT-EDITORS, because if you’ll replace strings manually using text-editors, then SERIALIZED ARRAYS wont be re-calculated, and site wont function correctly! ).
At first, Export database SQL file from james.deusing phpMyAdmin (Note, make 1 additional copy of that SQL for a backup). Now, in the SQL file, replace all occurrences of:
wp_user_withw_2_user_`wp_with`wp_2_( After replacement, just renamew_2_usersback towp_users[and same withw_2_usermeta], because they should stay as is )wp_capabilitieswithw_2_capabilitiesjames.de/withexample.com/james/(also, read [popupi 1]THIS NOTICE (popup)[/popupi] after conversion )/uploads/with/uploads/sites/2/(note,it’s a bit tricky… After replacements, manually search for/uploads/phrase, to ensure that you havent accidentally replaced external links i.e.microsoft.com/uploads/sites/2/)
(Step 3) Avoid user ID conflicts
Now remains most important part: users! To avoid conflict between user IDs, enter in example.com database: in wp_users and wp_usermeta, replace the ADMINISTRATOR (and all other users) IDs to random number i.e. 321 (WHICH USER ID DOESNT EXIST IN james.de‘s database).
(Step 4) Move files
Now, Files & Folders: move all contents from james.de/wp-content/uploads/ in example.com/wp-content/uploads/sites/2/ folder.
Also, do this check in Database.
(Step 5) Importing DB
At first, delete in example.com database, delete all tables starting with w_2_, and now I think you are ready to import the james.de‘s our modified SQL file. (During import, if there happens any SQL errors, then fix them – BTW, another recommended way could be to import the tables one-by-one usng PHPMYADMIN’s SQL Tab, where you can copy&paste contents from SQL file to be executed directly. Thus, you will see directly which table might give you import errors).
(Step 6) Specific notes
After importing, read these [popupi 3]notes (popup).[/popupi]
Finished !
If Import is successful, then visit your site! Congratulations!
(p.s. In addition, you can read these [popupi 2]nice tutorials (popup)[/popupi] too.)
If you find issues in this tutorial, or you want custom help of programmer, you can contact http://puvox.software/contact-us/.
Pingback: WordPress Multi-Language Plugins
Pingback: default wp-config.php content (wordpress)
Pingback: Migrate WP single Subdomains into WP Multisite – Puvox – Blog