Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. WordPress

Mover WordPress: Mover un sitio a una red multisitio

by
Read Time:11 minsLanguages:

Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)

Hace más o menos un año, tuve un desastre relacionado con un alojamiento. El servidor de mi proveedor de alojamiento fue hackeado y les costó más de una semana identificar cuál era el problema y solucionarlo.

Mientras tanto, los sitios de mis clientes estaban siendo redirigidos a un sitio de citas y yo estaba recibiendo sus llamadas telefónicas exigiendo que arreglara las cosas de inmediato.

Tuve que actuar rápido. Pero en lugar de simplemente mover todos los sitios tal y como estaban a un nuevo servidor (y debo añadir que también a un nuevo proveedor de alojamiento), decidí mover los sitios de forma que en el futuro me facilitase moverlos todos de nuevo si fuera necesario. Así que moví una serie de sitios con su propia instalación de WordPress a mi existente red multisitio, la cual ya había trasladado al nuevo servidor.

Mover sitios individuales a una red multisitio es más complicado que moverlo simplemente a una nueva instalación de un solo sitio, pero no es imposible. En este tutorial te mostraré dos métodos para lograrlo: usando plugins y de forma manual.

Lo que necesitarás

Para seguir este tutorial, necesitarás lo siguiente:

  • Una instalación de WordPress con un sitio existente ejecutándose en él.
  • Una red multisitio de la que seas el administrador de la red.
  • Para los movimientos manuales, necesitará un cliente FTP, un editor de código y acceso a phpMyAdmin.

Usar un plugin para mover un sitio a un multisitio

Si tu sitio no tiene una gran cantidad de configuraciones realizadas a través de pantallas de plugins, temas o ajustes del sitio, es posible que puedas moverlo con éxito utilizando el plugin WordPress Importer. Si el sitio tiene widgets, puedes copiar sus ajustes a través del plugin Widget Settings Importer/Exporter.

Sin embargo, si has añadido una gran cantidad de ajustes personalizados utilizando configuraciones u opciones de pantallas o el personalizador de temas, ninguno de estos será copiado. En este caso, tendrá que hacer un traslado manual.

Para obtener detalles completos sobre cómo usar estos plugins para mover tu sitio, consulta mi anterior tutorial sobre el empleo de plugins para mover un sitio de WordPress. El proceso para mover un sitio a una red multisitio o a una sola instalación es exactamente el mismo.

Migrar manualmente un sitio a una instalación multisitio

El sitio que vas a trasladar a una instalación multisitio tendrá tres componentes que debes copiar del anterior sitio:

  • archivos de tema y plugins: puedes copiarlos o instalarlos en la red si es que aún no están instalados
  • cargas, las encontrarás en el directorio wp-content/uploads de tu antiguo sitio, mientras que en la instalación multisitio tendrás que entrar en wp-content/uploads/sites/XX, donde XX es el ID de tu nuevo sitio en esta red (más sobre esto en breve)
  • tablas de base de datos

Nota: Si la red multisitio a la que estás moviendo tu sitio fue creada antes de la versión 3.5 de WordPress, no tendrás una carpeta sites. En su lugar, tendrás una carpeta blogs.dir dentro de wp-content que contendrá todos los archivos cargados para los subsitios. Aquí existirá una carpeta numerada para el sitio que estás creando, y es en esta en la que debes copiar los archivos. Cubriré esto con más detalles a continuación.

Hacer primero una copia de seguridad

Antes de hacer algo como esto, es buena idea hacer una copia de seguridad del sitio que vayas a mover y también de tu instalación multisitio. Utiliza tu plugin de copia de seguridad preferido, o una combinación de FTP y phpMyAdmin si prefieres trabajar de forma manual.

Utilizarás esta copia de seguridad para copiar los archivos relevantes en tu nuevo sitio, y también te dará un poco de tranquilidad en caso de que surja algún problema.

Crear un nuevo sitio en la red

Antes de poder migrar el antiguo sitio a la instalación multisitio, deberás crear un nuevo sitio vacío en la red. Más tarde importarás todo desde tu antiguo sitio a este nuevo.

Crea el sitio de la manera normal, yendo a Administración de red > Sitios, haciendo clic en Añadir nuevo e introduciendo los detalles de tu nuevo sitio.

Encontrar el ID de tu nuevo sitio en la red multisitio

Cada sitio de una red multisitio tiene su propio identificador numérico único. Esto se utiliza para identificar su carpeta en el directorio wp-content/uploads/sites (o wp-content/blogs.dir si la red multisitio es anterior, consulta más arriba) y también para identificar las tablas de la base de datos para ese sitio.

Para buscar esto, dirígete a Administración de red > Sitios y, a continuación, selecciona la opción Editar para el sitio que acabas de crear. La URL a la que WordPress te llevará te proporcionará el ID del sitio. La dirección URL debe tener el formato https://mired.com/wp-admin/network/site-info.php?id=XX.

XX es el identificador de tu sitio, y será el nombre de la carpeta que contiene tus archivos, así como el prefijo para los nombres de tabla de la base de datos.

Cargar archivos en el nuevo sitio

Identificar los plugins utilizados por tu antiguo sitio e instálalos (si es que aún no lo están) en tu red de WordPress a través de la pantalla Plugins o cárgalos en wp-content/plugins desde la copia de seguridad que realizaste de tu anterior sitio.

Haz lo mismo para cualquier tema que use tu sitio: cópialos desde tu copia de seguridad en el directorio wp-content/themes de tu red, o simplemente vuelve a instalarlos.

Nota: en una red multisitio, los temas y plugins se almacenan en un solo lugar para todos los sitios, no es necesario almacenarlos en un lugar específico para el nuevo sitio.

Copie las cargas de tu antiguo sitio en el nuevo. Los archivos que necesitarás copiar están en el directorio wp-content/uploads de tu sitio anterior. El lugar en donde debas cargarlos dependerá de la antigüedad de la versión de la red:

  • Si la red se creó después de WordPress 3.5, tendrás una carpeta sites en wp-content/uploads. Busca la subcarpeta con el ID de tu sitio y carga el contenido de la carpeta wp-content/uploads de tu antiguo sitio en este.
  • Si la red es anterior y tiene una carpeta blogs.dir, también contendrá una carpeta con el identificador de tu sitio. Esta tendrá una subcarpeta llamada files. Copia el contenido de la carpeta wp-content/uploads de tu antiguo sitio a la carpeta files.

Nota: es posible que tengas que eliminar cualquier carpeta que WordPress haya creado para tu nuevo sitio en la carpeta sites o blogs.dir para evitar conflictos.

Una vez hayas hecho todo esto, activa cualquier tema y plugin en tu nuevo sitio.

Exportar las tablas de tu antiguo sitio

WordPress multisitio utiliza tablas de base de datos independientes para cada sitio de la red. En lugar de almacenar las entradas de tu sitio en wp_posts, por ejemplo, las almacena en wp_XX_posts, donde XX es el identificador de tu sitio.

Sin embargo, no utiliza tablas independientes para los datos de usuario, estos se almacenan en una tabla wp_users y wp_usermeta que comparte toda la red.

Esto significa que tendrás que copiar todas las tablas de tu antiguo sitio, excepto las dos tablas de usuario, y tendrás que cambiar los nombres de los archivos que estés copiando. Desafortunadamente tendrás que crear los usuarios de forma manual en el nuevo sitio usando las pantallas de administración de WordPress.

Para obtener más información sobre las tablas y bases de datos de un multisitio, consulta este tutorial sobre la bases de datos de WordPress y multisitios.

En PhpMyAdmin de tu antiguo sitio, haz clic en la pestaña Structure. A continuación, selecciona todas las tablas excepto wp_users y wp_usermeta. A continuación se muestra un ejemplo.

Database tables selected ready for exportDatabase tables selected ready for exportDatabase tables selected ready for export

Haz clic en el cuadro desplegable With selected:, selecciona Export y después Go. Esto descargará un archivo sql en tu equipo con el contenido de esas tablas.

Añadir usuarios

Tal y como he mencionado antes, no puedes copiar las tablas wp_users y wp_usermeta, ya que se duplicarían en la red multisitio.

Antes de empezar a importar las tablas que acabas de descargar, configura los mismos usuarios en tu nuevo sitio que los que existían en el anterior. Ten en cuenta que tendrán diferentes identificadores en la base de datos de la red multisitio que en el antiguo sitio, lo que puede causar algunas inexactitudes en la asignación de las entradas a los autores. Tendrás que corregir esto al final, algo que cubriré más tarde.

Editar las tablas de la base de datos

Haz una copia del archivo sql que has descargado en tu equipo y asígnale un nombre que te señale lo que es (por ejemplo, añadiendo copia a su nombre). Ábrelo en un editor de código.

Editar enlaces

Cambia todas las instancias del dominio del sitio en la red multisitio al nuevo dominio de tu multisitio. Por ejemplo, si tu sitio estaba en http://misitio.com, cámbialo a http://mired.com/misitio. Si tu red utiliza subdominios, tendrás que cambiarlo a http://misitio.red.com. Guarda el archivo.

Editar referencias de tabla

Las tablas de la base de datos del nuevo multisitio necesitarán prefijos para el identificador de cada uno de sus sitios. En tu archivo sql, reemplaza todas las instancias de wp_ por wp_XX_, donde XX es el ID de tu sitio.

Ahora guarda el archivo sql.

Importar las tablas a la nueva base de datos

Ahora que has instalado tus temas y plugins y exportado tus datos, debes importar las tablas de la base de datos a la red multisitio.

Eliminar las tablas existentes

Antes de subir las tablas desde tu antiguo sitio, tendrás que eliminar las duplicadas que WordPress haya añadido a tu nuevo sitio.

En phpMyAdmin, suelta las tablas que tienen el prefijo wp_XX_, donde XX es el ID de tu sitio. Estas incluirán lo siguiente, pero pueden incluir además tablas creadas por plugins:

  • wp_XX_commentmeta
  • wp_XX_comments
  • wp_XX_links
  • wp_XXoptions
  • wp_postmeta
  • wp_posts
  • wp_terms
  • wp_term_relationships
  • wp_term_taxonomy

Selecciona esas tablas (más cualquier tabla wp_XX_ creada por algún plugin), haz clic en el menú desplegable With selected:, seleccione Drop y luego Yes.

El siguiente ejemplo incluye una tabla adicional que ha sido creada por un plugin:

database tables selected ready to be droppeddatabase tables selected ready to be droppeddatabase tables selected ready to be dropped

Importante: Si tu antiguo sitio tenía tablas de base de datos creadas por plugins, debes instalar esos mismos plugins en la red antes de importar la nueva base de datos. La importación incluirá estas tablas, que no funcionarán a menos que se haya instalado el plugin.

Cargar las tablas de la base de datos

A continuación, carga la base de datos que has editado:

  • Haz clic en la pestaña Import.
  • Haz clic en el botón Choose file.
  • Selecciona el archivo sql que has editado y haz clic en Choose o OK.
  • Haz clic en el botón Go.
  • Después de un tiempo (dependiendo del tamaño de la base de datos), verás un mensaje que te indicará que la carga ha finalizado correctamente.

Pasos finales

Borra la caché de tu navegador. Esto evita cualquier problema que puedas tener si el navegador ha almacenado contenido guardado en la caché desde el antiguo sitio.

Ahora inicia sesión en el administrador de WordPress para el sitio remoto. Si has trasladado las tablas de usuario, tus datos de inicio de sesión serán los mismos que los de tu antiguo sitio, pero si no lo hiciste, estos serán los que especificaste cuando instalaste WordPress en la nueva ubicación.

Visita la pantalla Permalinks para tu nuevo sitio y vuelve a activarlos.

Mira la pantalla principal de Entradas y comprueba que a estas les han sido asignados autores, hay bastantes probabilidades de que esto no se haya solucionado de forma correcta. Puedes cambiar esto por lotes:

  1. Selecciona todas las entradas que deben ser asignadas a un autor determinado.
  2. Haz clic en Acciones en lote y selecciona en el menú desplegable Editar.
  3. Haz clic en Aplicar.
  4. En el panel que aparece, selecciona el autor adecuado en el cuadro desplegable.
  5. Haz clic en Actualizar.

El panel de edición se muestra en la captura de pantalla:

Posts screen showing bulk editing actionsPosts screen showing bulk editing actionsPosts screen showing bulk editing actions

Si tu sitio tiene páginas y tipos de entradas personalizadas, repite el proceso anterior para ellos.

Comprueba que todos tus enlaces están funcionando bien y que los widgets y plugins se comportan como deberían. Si no es así, puedes retroceder en el proceso, utilizando tus copias de seguridad donde lo necesites, o simplemente configurar los plugins y widgets desde dentro de tu nuevo sitio.

Configuración de la asignación de dominios

Si deseas mantener el mismo nombre de dominio que estabas utilizando para el sitio cuando estaba en una instalación de un solo sitio, puedes usar el plugin domain mapping para hacer esto. Instala el plugin, actívalo en tu red y luego sigue las instrucciones dadas por el plugin para configurarlo. Esto implicará realizar cambios en la configuración de DNSs de tu dominio.

Resumen

Mover un sitio a una red WordPress multisitio desde tu propia instalación no es algo que puedas hacer rápidamente o sin ser muy minucioso, pero sí es posible y yo lo he hecho un par de veces. Sólo tienes que seguir los pasos dados aquí y asegurarte de que tienes copias de seguridad en caso de que surja cualquier problema, y descubrirás que te funciona sin problemas.

Advertisement
Did you find this post useful?
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.