En este artículo veremos en profundidad como exportar un subsitio de un WordPress multisite de forma manual. Existen varias formas de poder hacerlo, exportando los usuarios o sin ellos, también podemos conservar o modificar los prefijos de las tablas para adaptarlo al nuevo hosting etc.
Comentar que existen plugins para realizar este proceso de exportación como All in One WP Migration, pero la gran mayoría son de pago. Yo personalmente prefiero hacerlo manualmente y tenerlo todo controlado.
Exportar un Subsitio concreto – ID del sitio
Primero escogeremos el sitio que se va a exportar. Si accedemos al panel de todos los sitios, veremos el listado de sitios que hemos creado en el Multisite. Al pasar el puntero sobre la opción editar en el subsitio elegido, en el link de la parte inferior veremos el número de ID.
Exportar la base de datos del Subtitio
El siguiende paso será acceder a nuestro hosting y mediante phpMyAdmin accederemos a la base de datos de nuestro WordPress Multisite.
WordPress multisitio utiliza una única instalación (plugins, themes, etc) para que todos los subsitios que se vayan creando trabajen con la misma configuración.
La diferencia está en que se van almacenando diferentes listas de tablas para cada subsitio: wp_2, wp_3, wp_4 y así sucesivamente.
En este caso tenemos el subsitio con ID 7 que corresponde a las tablas wp_7. Estas son las tablas que tenemos que exportar que corresponden al sitio nuevosite.dominio/site5.
A continuación seleccionamos todas las tablas con wp_7 y pinchamos en exportar.
Guardamos el archivo.sql para el hosting de destino.
SERVICIOS Y SOPORTE WORDPRESS
Instalación limpia de WordPress en el hosting de destino
Seguidamente realizaremos una instalación limpia de WordPress en el hosting de destino.
Para esta instalación vamos a importar el usuario creado en la instalación del multiste, es decir el administrador.
Y en el hosting de destino vamos a crear una nueva base de datos mediante mySQL.
Ejemplo:
Nombre BD: minuevositewp
Usuario: minuevositeuser
Password: nuevosite35xa*
Una vez creada, accedemos a phpMyadmin y veremos nuestra nueva base de datos vacia.
Seleccionamos la base de datos minuevositewp y seguidamente pinchamos en importar. Cargamos el archivo.sql que anteriormente habiamos exportado de nuestro multisite (recordemos que contiene las tablas con el prefijo wp_7)
Se importarán todas las tablas.
Ahora tenemos 2 opciones, modificar el prefijo en el archivo wp-config.php o cambiar el prefijo en todas las tablas mediante phpMyAdmin de wp_7 a wp_
Por el contrario, si queremos que nuestra base de datos siga funcionando con el prefijo wp_7 pondremos el siguiente código en el archivo wp-config.php.
$table_prefix = 'wp_7';
Pero antes de realizar este paso, primeramente tendremos que subir todos los achivos de Worpress a nuestro hosting.
Descarga Worpress en la web oficial:
Seguidamente, subiremos los archivos al hosting mediante FTP o directamente desde el FTP del propio panel del hosting de destino.
Puedes utilizar Filezilla (gratuíto) o Transmit para enviar por FTP.
Cuando tengamos todos los achivos subidos, cambiaremos el nombre del archivo wp-config-sample.php por wp-config.php y abriremos este archivo con un editor de texto.
Ahora tenemos que poner los credenciales que habiamos creado anteriormente en nuestra nueva base de datos y el prefijo ‘wp_7’.
Perfecto, ya tenemos nuestra base de datos conectada con el Worpress del hosting de destino utilizando todas las tablas con el prefijo wp_7.
Ahora tenemos que cambiar el nombre de dominio de la web en cuestion.
Igualmente, y a través de phpMyAdmin accedemos a la tabla wp_options en este caso (wp_7_options) y cambiaremos las filas «siteurl» y «home» por el dominio que se va a utilizar.
Ya tenemos conectada la base de datos y el dominio correspodiente apuntando a la nueva web.
Copiar el contenido de nuestro Subsitio
Ahora toca subir todo el contenido de la misma (fotos, audios, documentos, etc) y resto de archivos que generan ciertos plugins.
Al igual que el ID 7 corresponde a las tablas de la base de datos, en la carpeta wp-content/uploads/sites/7/ tendremos toda la media del site 7.
Tendremos que copiar todos los archivos de la carpeta 7 del Multisite a wp-content/uploads del hosting de destino.
!Voila¡ Tras realizar este paso ya tendremos nuestro WordPress funcionando en el hosting de destino.
Para acceder al back-end del nuevo hosting utilizaremos el mismo usuario admin creado en el multisite.
Actualizar todas las Url
El último paso que nos quedaría es actualizar las Url del contenido. Tenemos que cambiar todas las direcciones del subdominio por el dominio final.
Para esta tarea podemos utilizar el plugin Better Search Replace. Pondremos la dirección antigua para que reemplaze las Url con la nueva dirección.
Selecciona todas las tablas y ejecuta en modo prueba, tras finalizar te mostrará el número de tablas y filas a modificar.
Para realizar la modificación en nuestra base de datos, quita la opción ejecutar como simulacro.
El subsitio con ID 7 lo tendremos perfectamente instalado en el nuevo hosting.
Actualizar las Urls con Visual Studio Code
Otra opción que podemos utilizar para este cometido sería utilizar el software Vision Studio Code.
Si preferimos este método tendremos que realizar el proceso ANTES de importar el archivo.sql en el hosting.
Puedes descargar este software de libre uso aquí. Descargar Visual Studio Code.
El proceso es similar que con el plugin Better Search Replace.
En relidad con esta aplicación podemos cambiar todo lo que queramos, el subdominio por el dominio, las Url, nombres de filas y tablas etc.
La ventaja de utilizar este método es que puedes dejar la base de datos lista para importar en el hosting y la desventaja es que para algunas personas puede ser un método más complicado.
Procedimiento
Antes de nada, duplica tu archivo.sql para tener una copia de seguridad.
Abrimos Visual Studio Code.
Importa el archivo.sql y pincha en buscar.
En el campo buscar pondremos: https://nuevosite.dominio/site5
Y en reemplazar: https://dominionuevaweb.com
Y pulsamos en aplicar.
Finalmente y tras relizar los cambios, ya podemos importar la BD en el hosting de destino.
Opciones y configuraciones adicionales
Hemos visto la forma más simple a la hora de migrar un subsitio de un WP Multisite.
Ahora detallaremos que hacer si queremos migrar una web sin copiar el usuario del multisite y crear un usuario en el nuevo hosting.
También veremos otro pequeño ajuste que deberiamos aplicar en una migración si la web ha sido creada con Elementor.
Ajustes finales si la web ha sido creada con Elementor
En el caso de que el subsitio haya sido creado con Elementor deberiamos cambiar las Url que el propio maquetador crea cuando configuramos una web, de lo contrario algunos enlaces y direcciones de imagenes seguirán apuntando a la dirección del subdominio del WP Multisite.
Tendriamos que cambiar:
https://nuevosite.dominio/site5
por
https://dominionuevaweb.com
Para realizar este paso vamos al menú Elementor/Herramientas/ReemplazarUrl/ y pondremos la Url del multisitio para que sea reemplazada por la Url del hosting de destino.
Pulsamos reemplazar URL y Elementor mostrará el número de filas modificadas.
Esto también debemos hacerlo si exportamos un WordPress de un único sitio.
De esta manera todas las Url apuntarán hacia el nuevo dominio.
Exportar un Subsitio de WordPress Multisite sin usuarios
Si queremos copiar un subsitio al hosting de destino sin el usuario de origen, tendremos que instalar WordPress con el método habitual en el hosting de destino (como si fuera una web que vamos a crear desde cero).
Para ello podemos hacerlo de 2 maneras:
1- Accediendo a nuestro hosting e instalar la aplicación WordPress (algo habitual en los hostings con cPanel).
2- Copiar los archivos de WordPress mediante FTP como hicimos anteriormente.
IMPORTANTE: Al realizar este tipo de intalación no necesitamos crear un base de datos nueva mediante mySQL ya que la propia instalación de WP creará dicha base de datos.
Si prefieres copiar manualmente los archivos de WP mediante FTP a nuestro hosting, iniciaremos la instalación introduciendo la siguiente Url:
https://dominionuevaweb/wp-admin/
Y comenzaremos con la instalación de WordPress donde crearemos el nombre de la base de datos, usuario y contraseña.
Una vez creado, accederemos mediante phpMyAdmin a la base de datos que acabamos de crear en el hosting de destino y borraremos todas las tablas excepto wp_users y wp_usermeta.
Tras realizar este paso, la base de datos del hosting de destino solo tendrá las tablas del nuevo usuario.
A continuación importaremos el archivo.sql de nuestro subsitio igual que en el procedimiento anterior (el subsitio con las tablas con prefijo wp_7).
Se importarán todas las tablas y borraremos wp_7_users y wp_7_usermeta para que solo queden wp_users y wp_usermeta.
Ya tendremos el WordPress con toda la configuración del Multisite pero con el nuevo usuario de la instalación del hosting de destino que acabamos de crear.
Finalmente tendremos que cambiar todas las tablas de wp_7 a wp_ para que la base de datos funcione correctamente con la nueva tabla de usuario.
Para este paso selecciona todas las tablas excepto wp_users y wp_usermeta y pincharemos en «Reemplazar prefijo de la tabla».
En el siguiente campo reemplazaremos:
wp_7_
por
wp_
De esta manera tendremos el subsitio exportado al hosting de destino pero con el nuevo usuario que hemos creado en la nueva instalación de Worpress.
Por último, reemplazaremos la dirección de dominio en las filas «siteurl» y «home» y cambiaremos las URL antiguas al igual que en el procedimiento anterior.
Ajustes en wp_users y wp_usermeta
Si al exportar una base de datos y trás cambiar el prefijo de las tablas no podemos acceder a nuestro back-end, es debido a que necesitamos cambiar el prefijo en las filas de roles de usuario.
Debemos poner el prefijo correspodiente en estas tablas al igual que el resto de nuestra base de datos.
Para ello, accederemos a nuestro phpMyAdmin y cargaremos la tabla wp_users.
Seguidamente, pincharemos en la pestaña SQL en el menú superior para realizar una consulta e insertaremos el siguiete código:
SELECT * FROM wp_7_options WHERE option_name LIKE 'wp\_%'
Como en el procedimiento anterior, hemos modificado las tablas de la base de datos de wp_7_ a wp_ así que tendremos que editar las filas que aparezcan con un prefijo diferente poniendo el prefijo correcto como vemos en wp_ user_roles.
Haremos lo mismo cargando la tabla wp_usermeta y realizaremos otra consulta por SQL con el siguiente código:
SELECT * FROM wp_7_usermeta WHERE meta_key LIKE 'wp\_%'
Igualmente editaremos todas las filas que contengan wp_7_ poniendo el prefijo wp_
Resumen
Aunque parezca una tarea muy complicada, exportar un subsitio de WordPress multisite de forma manual no es tan complicado si sigues esta metodología.
Si quieres dominar este tipo de migraciones es recomendable que practiques todos los pasos varias veces con alguna web de pruebas.
Estos conocimientos te servirán para exportar e importar todo tipo de instalaciones ya sea Worpress Multisite o de único site.