Una de las —pocas— cosas que no me gustan de WordPress es que, si metemos vocales con tildes o eñes en un título, a la hora de generar el enlace se los come. No hay más que ver algunos de los posts de este mismo weblog: /2004/02/cunto-pesa-internet/ o /2004/02/a-quin-votar/. En estos dos casos, no parece que al leer “cunto” nos imaginemos que en realidad pone “cuánto”, y lo mismo con “quin” en lugar de “quién”. La solución es bien sencilla:
- En nuestro directorio de WordPress, localizamos el subdirectorio
wp-includes, y dentro de éste, el archivo functions.php.
- Lo abrimos con nuestro editor de texto favorito (mi recomendación es TextPad), y buscamos la función que nos interesa, alrededor de la línea 87:
function sanitize_title($title) .
- Debajo de esta declaración de función encontraremos 7 u 8 líneas más. Después de la primera, es decir, después de
$title = strtolower($title);, y justo inmediatamente después (esto es importante), añadimos el siguiente código:
$title = str_replace('ñ', 'n', $title);
$title = str_replace('á', 'a', $title);
$title = str_replace('é', 'e', $title);
$title = str_replace('í', 'i', $title);
$title = str_replace('ó', 'o', $title);
$title = str_replace('ú', 'u', $title);
$title = str_replace('ü', 'u', $title);
¿Qué están haciendo exactamente estas líneas? Aun no sabiendo PHP, será fácil interpretarlas: la función str_replace busca, en la variable proporcionada en tercer lugar, la cadena especificada de primera, y la sustituye por la segunda. Así, estaremos sustituyendo en el título del post las vocales con tilde, la ñ y la ü por las vocales sin tilde, n, y u respectivamente. Luego subiremos el archivo de nuevo a su localización original, a wp-include.
Así, obtendremos enlaces más inteligibles y lógicos: en los dos casos que mencionaba antes, serían /2004/02/cuanto-pesa-internet/ y /2004/02/a-quien-votar/. Eso sí, hemos de tener en cuenta que esto sólo se aplicará a los posts nuevos. Otro día mostraré cómo recuperar las “tildes perdidas” de todos nuestros posts antiguos, sin necesidad de tener que hurgando en las bases de datos.