Click here to translate this post

En este ejemplo mostraré cómo tener dos dominios atacando a una misma BBDD WordPress MU.

WordPress MU guarda el nombre de dominio en la BBDD para cada blog nuevo. Cuando se accede a un blog de WordPress MU, éste busca la información sobre el blog comparando el subdominio y dominio con el registro en la BBDD.

Imaginemos que tenemos el dominio www.dominio1.com y un usuario crea un blog llamado blogpersonal. La ruta para el blog sería http://blogpersonal.dominio1.com. En el momento en que alguien acceda a ese blog, WordPress realizará la búsqueda blogpersonal.dominio1.com  en el campo domain de la tabla wp_blogs. En el caso de que exista se le presentará el blog con su plantilla correspondiente.

¿Qué pasa si queremos que otro dominio ataque a la misma BBDD? Configuraremos Apache para que la ruta del DocumentRoot de www.dominio2.com sea la misma que el domino www.dominio1.com. De esta forma conseguimos que ambos dominios compartan los mismos archivos. Si volvemos a acceder a http://blogpersonal.dominio1.com WordPress nos devuelve el blog correctamente. Si accedemos a http://blogpersonal.dominio2.com WordPress nos informa de que el blog no existe. Este resultado se debe a que WordPress ha buscado blogpersonal.dominio2.com en el campo domain de la tabla wp_blogs y ese registro no existe.

Para solucionar este problema tenemos que editar todas aquellas funciones que realicen la búsqueda del blog en la BBDD. El código PHP es muy sencillo:

$domain = $_SERVER['HTTP_HOST'];
$domain2 = strpos($domain, ‘domain2′);

if($domain2 > 0){
$output = str_replace(“domain1″, “domain2″, $output);
}

Este código mira si el dominio es dominio2.com y en el caso de que lo sea le cambia el nombre a dominio1.com. Por lo que blogpersonal.dominio2.com pasaría a blogpersonal.dominio1.com y WordPress sí encontraría el registro en la BBDD.

En este archivo, WP_MU-Multidominio, PHP encontrarás todas los ficheros que debes editar para que WordPress MU pueda funcionar con más de un dominio.
Follow me on Twitter