Últimamente suele ser nomal el traducir la web a varios idiomas. En Wordpress, aunque no es difícil, cuesta un poco de trabajo llegar a un buen método.
Por un lado tenemos qTranslate, un plugin que nos permite traducir el contenido a multitud de idiomas.
Aunque tiene carencias (la mayoría de los plugins no pueden ser traducidos), es el mas famoso y extendido por su caracter gratutio.
Existen alternativas como Google Translate WordPress Plugin o WPML (de pago) pero no los tratatemos aquí.
Como alternativa también podemos clonar 3 veces la web en subdominios como por ejemplo es.miweb.com y en.miweb.com, pero no es una solución muy profesional.
Por otro lado tenemos Yoast Seo mas conocido como Worpress SEO. Un plugin interesante que nos permitirá gestionar muchas opciones SEO.
El primer problema que nos encontramos con la combinación de estos dos componentes es que ni qTranslate ni wordpress SEO están preparados para gestinar URLs traducidas. Para eso tendremos que instalar el plugin qTranslate Slug
Una vez superado el problemilla de la URL, nos encontramos con que los metas no pueden ser traducidos. Para eso podemos...
1Modificar Wordpress SEO para que admita traducciones.
Para esto tendremos que editar el fichero que se encuentra en midominio\wp-content\plugins\wordpress-seo\frontend\class-frontend.php.
Lo primero será poner al principo de la clase ( despues de class WPSEO_Frontend { ) la siguiente funcion
function tt($var) { return __($var); }
El siguiente paso el modificar las funciones que muestra title, keywords y description.
Modificar la función "title"
mas o menos por la linea 374 dependiendo de la versión, quitando esto
return esc_html( strip_tags( stripslashes( apply_filters( 'wpseo_title', $title ) ) ) );
y poniendo
return esc_html( strip_tags( stripslashes( $this->tt( apply_filters( 'wpseo_title', $title )))));
Modificar la función "metakeywords"
mas o menos por la linea 785 dependiendo de la versión, quitando esto
echo '' . "\n";
y poniendo
echo 'tt($metakey) ) ) ).'"/>';
Modificar la función "metadesc"
mas o menos por la linea 785 dependiendo de la versión, quitando esto
echo '' . "\n"; y return $this->tt($metadesc);
y poniendo
echo 'tt($metadesc) ) ) ) . '"/>'; y return $this->tt($metadesc);
Con esto ya solo nos queda, en los campos adecuados, traducir tantos idiomas como tengamos. Se hace de esta manera [:es]Hola mundo[:en] Hello World...
2Usar el plugin qTranslate META.
Lo primero será instalar el plugin qTranslate META.
Este plugin permite traducir METAs desde posts y páginas. El problema está en que produce duplicidad con Wordpress SEO.
Para solucionar esto tendremos que repetir el hack del punto anterior pero esta vez eliminando esas lineas o cambiandolas por un caracter vacio (p.e. echo '').
Recordar que es importante no poner nada en el campo Title SEO de Yoast para no tener problemas.