Configurar WordPress Multisitio

Un WordPress Multisitio es una instalación que comparte los mismos archivos, y que genera diferentes tablas según las diferentes instalaciones y que por tanto, comparte funcionalidades entre ellas.

Es una solución muy inteligente para ciertas necesidades como puede ser los sitios multidioma (como este), multipaís, división de funcionalidades para hacer menos pesado el sitio principal.

Esto es debido a que podemos crear/instalar plugins para nuestras diferentes instalaciones. Puede darse la circunstancia que activemos toda una tienda online en un subsitio con el objetivo de mantener el máximo rendimiento en el portal principal. Este tipo de instalaciones se suele dar en sitios muy grandes.

Esta guía es una recopilación de diferentes sitios para poder instalar el multisitio con las dos configuraciones: subdominios y subcarpetas. La opción de subdominios también se podrá utilizar en la configuración multidominios. Sólo será necesario una vez creado un subdominio, cambiarle la dirección a la definitiva.

En Closemarketing tenemos este servicio de Desarrollo WordPress Multisitio.

El sitio principal es el HandBook oficial de WordPress, que lo primero que nos indica es pegar esta linea en el archivo wp-config.php:

define( 'WP_ALLOW_MULTISITE', true );

Esto habilitará un nuevo menú en Herramientas > Administración de la red.

Configuración subcarpetas

Configuración en wp-config

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', 'dominio.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

Configuración en htaccess

# BEGIN WordPress Multisite SUBFOLDER
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
</IfModule>

Configuración con subdominios

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'dominio.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

Htaccess si es subdominio

# BEGIN WordPress Multisite SUBDOMAIN
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
</IfModule>

Y otra cosa importante para los multisite, es que si nos equivocamos con la dirección y ponemos www o sin www, se redirigirá a una página de registro del nuevo site. Esto se utiliza en contadas ocasiones, por lo que nos interesa desactivarlo, añadiendo este código en wp-config:

define( 'NOBLOGREDIRECT', 'https://dominio.com' );

Configuración cookies para multidominio

Si quieres la opción de multidominio, esto es dominio.com, dominio.es, etc. para que no haya problemas con las cookies, deberás añadir estas lineas en wp-config:

define('COOKIE_DOMAIN', $_SERVER['HTTP_HOST'] );

    Mentions

  • 💬 Actualidad para profesionales de WordPress (Edición #218) - Enlace Permanente

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

ÚLTIMOS ARTÍCULOS

Cierre Ventana

Conoce la nueva Herramienta para hacer tu Plugin más seguro y Cumpla Buenas Prácticas

Esta es la charla que he dado en la WordCamp Griñón 2024, acerca de Plugin Check Plugin la…

Cierre Ventana

Cómo instalar y configurar Xdebug en Mac para depurar tus aplicaciones PHP

¿Qué es Xdebug y para qué sirve? Si trabajas con PHP, seguramente te has enfrentado a errores complejos…

Cierre Ventana

Cómo mantener tus dependencias al día

Cuando programamos en PHP/JS y utilizamos librerías como composer o npm, que son fundamentales en nuestro trabajo. Tenerlas…