Google Sitemap Generator y WordPress 3.0 Multisite
En un post anterior titulado WordPress 3.0 multisite: cómo instalarlo (I) vimos que Jan Dembowski proponía una solución para que el plugin Google Sitemap Generator funcionase correctamente en una instalación de WordPress multidominio. Es una solución que funciona pero que requiere configurar el plugin con “Custom location” y definir distintos valores del path, adonde se alojará el sitemap, según el subdominio.
Sin embargo, en uno de los comentarios del post Google XML Sitemaps and WordPress Multisite, se aporta una alternativa mucho más elegante. A continuación, los pasos a seguir:
1. Modificar el archivo sitemap.php para comentar las líneas 53 a 58.
2. Modificar el archivo sitemap-core.php cambiando el código correspondiente a la función GetXmlPath por el siguiente:
function GetXmlPath($forceAuto=false) {
if(!$forceAuto && $this->GetOption(“b_location_mode”)==”manual”) {
$xml_path = $this->GetOption(“b_filename_manual”);
} else {
$xml_path = $this->GetHomePath() . $this->GetOption(“b_filename”);
}
if((defined(‘WP_ALLOW_MULTISITE’) && WP_ALLOW_MULTISITE) || (function_exists(‘is_multisite’) && is_multisite())) {
return str_replace(‘sitemap.xml’, ‘sitemaps/sitemap.’.$_SERVER['HTTP_HOST'].’.xml’, $xml_path);
}
return $xml_path;
}
3. Crear una carpeta en el directorio raiz llamado “sitemaps” y autorizarlo 777 (permiso para escribir).
4. Activar el plugin para que lo vea toda la red (opción “Activate Network”).
5. Poner en la configuración del plugin “Automatic detection” y nombre del sitemap: sitemap.xml, como si no tuviéramos una instalación multidominio.
6. Incluir la slguientes líneas en el archivo htaccess:
RewriteRule ^sitemap.xml sitemaps/sitemap.%{SERVER_NAME}.xml [L]
RewriteRule ^sitemap.xml.gz sitemaps/sitemap.%{SERVER_NAME}.xml.gz [L]
Suponiendo que tengamos una instalación con el dominio principal “misitio.com” y un subdominio “sitio1.misitio.com”, el plugin creará los sitemaps en “misitio.com/sitemaps” independientemente desde el sitio de nuestra red en donde se esté ejecutando. El de misitio.com se llamará “sitemap.www.misitio.com.xml” y el de “sitio1.misitio.com” se reconocerá con el nombre “sitemap.sitio1.misitio.com.xml”.
Con las reglas del htaccess, la búsqueda de “www.misitio.com/sitemap.xml” terminará en “www.misitio.com/sitemaps/sitemap.www.misitio.com.xml” y el de “sitio1.misitio.com/sitemap.xml” en “sitio1.misitio.com/sitemaps/sitemap.sitio1.misitio.com.xml”.
Todo ello implica la modificación del plugin, claro está, pero a cambio podemos seguir utilizándolo hasta que salga una versión compatible con WP 3.0 multisite.










septiembre 20th, 2010 a las 6:22 pm
No puedo acceder a la configuración del plugin después de haber completado los 4 primeros pasos.
Tengo un banner que me dice que el plugin no será activado a menos que desactive la configuración multisitio.
Qué estoy haciendo mal?
Gracias
Juan