Para los que no lo conocéis, Language Switcher es un plugin para wordpress. Con el podemos hacer que un blog en wordpress soporte múltiples idiomas.
El problema
Si usamos este plugin e intentamos validar los documentos web en XHTML Strict veremos que existen errores generados por el carácter «&» puesto que no se encuentra como entidad HTML:
& amp;
Todos los errores vienen de la URL que Language Switcher define para pasar de un lenguaje a otro (switcher interfaz).
La solución
El problema esta localizado y es sencillo, así que la solución no podías ser menos. Voy a exponerlo a continuación para ahorrar esos minutillos algún desarrollador sin ganas de rebuscar en el código del plugin.
En la línea 1010 del fichero langswitch.php debemos hacer el siguiente cambio:
//return $uriStr; return htmlentities($uriStr);
Lo que hice simplemente es comentar la línea original del plugin e incorporar la misma instrucción pero añadiendo la función de PHP htmlentities() encargada de convertir la string pasada como parámetro $uriStr
en una nueva string donde se han remplazado todos los caracteres que tienen una entidad HTML equivalente.
En próximas versiones
Jennifer Hodgdon (programadora en Poplar ProductivityWare y responsable de este plugin) me ha informado que esta solución será implementada en futuras versiones. Así no tendremos que preocuparnos de la sobre-escritura del fichero.
Por cierto, Jennifer me ha escrito en inglés y en un perfecto español 🙂