Hoy os vamos a explicar cómo se puede conseguir validar páginas AMP en un WordPress que use WPML como plugin multi-idioma.
WPML incluye en el header de todas las páginas una hoja de estilo para el selector de idiomas «language-selector.css». Y esto no lo hacen siguiendo las especificaciones de WordPress, sino filtrando el header por la etiqueta <title>*</title> y añadiendo la hoja de estilos a continuación.
Una implementación que NO sigue el estándar de WordPress y que NO debería hacerse de esta forma. Por esta razón no se puede utilizar el filtrado que proponíamos en otra entrada: ¿Qué pasa si mi WordPress no pasa la validación AMP? y hay que buscar otra solución.
El error de validación de AMP exacto es este:
The attribute 'href' in tag 'link rel=stylesheet for fonts' is set to the invalid value 'wp-content/plugins/sitepress-multilingual-cms/res/css/language-selector.css?v=3.5.1.1'
WPML tiene una función que desactiva la inclusión de esta hoja de estilos. Si añadimos:
define('ICL_DONT_LOAD_LANGUAGE_SELECTOR_CSS', true);
Al archivo functions.php del tema activo no cargará esa hoja de estilos.
¿Cómo conseguir que no cargue la hoja de estilos solo en páginas AMP?
Creando una plantilla AMP personalizada y añadiendo en su header esta línea:
<?php define('ICL_DONT_LOAD_LANGUAGE_SELECTOR_CSS', true); ?>
De esta forma WPML no cargará la hoja de estilos para las páginas AMP y solucionado el problema y pasada la validación: