Do not speak Spanish? Read this post in English.

Miércoles, 06 d mayo d 2009.

wordpress multidominio

Si alguna vez habéis probado de usar wordpress para algo que no fuese exactamente un blog os habréis encontrado con que tiene ciertas limitaciones. Una de las que a mi personalmente más rabia me dan es que la url del dominio la saca de base de datos con lo que sólo podemos tratar con un dominio para una única instalación de wordpress.

Esto hace que trabajar con una misma copia de wordpress en entornos de desarrollo sea casi imposible, ya que cada uno tiene que usar una copia de wordpress distinta ya que en su base de datos viene marcado su dominio. Si además, por lo que sea requerimos que nuestro blog responda en varios dominios distintos wordpress no parece en absoluto nuestro cms. No lo parece, pero puede serlo...

Por suerte, con los filtros de wordpress puede hacerse casi de todo. Existen distintos filtros que podemos usar para modificar llamadas internas de wordpress a opciones de configuración del blog. La verdad es que en las tripas de wordpress todo está muy liado y se hacen llamadas a distintos métodos en distintos sitios.

Lo que vamos a hacer es usar una única función en todas las llamadas que contengan el extraigan el dominio como parte del dato que consultan. Esta función buscará en la url el lugar correspondiente al dominio y lo sustituirá. ¿Con qué? pues con el dominio que estamos visualizando en este momento... de esta forma cualquier dominio responderá perfectamente.

Este es el código. Debes incluirlo en el archivo functions.php o dentro de un plugin:

add_filter('bloginfo_url','change_domain_in_urls',10,2);
add_filter('option_home','change_domain_in_urls',10,2);
add_filter('option_url','change_domain_in_urls',10,2);
add_filter('option_siteurl','change_domain_in_urls',10,2);
function change_domain_in_urls($output)
{
	$output= explode("/",$output);
	$output[2] = $_SERVER['HTTP_HOST'];
	$output = implode("/",$output);
	return $output;
}

Un último aviso... que una web responda con el mismo contenido en distintas urls se considera para los buscadores como contenido duplicado (y es penalizado) por lo que cuidado con dejar que se indexe más de un dominio usando esta técnica.

Temas Relacionados: programacion

Autor:

Anímate y deja tu comentario

Esto son experimentos, no preguntes ;) prueba metadescription Juego Prueba title Más tests Y más

render4