Haciendo pruebas con el plugin WPtouch, del que traté en la entrada del 31 de mayo, me he dado cuenta, creo que por primera vez, de algunos problemas en las URLs de WordPress. Mas concretamente, que existen enlaces persistentes o permalinks con elementos en inglés. Por ejemplo, la URL correspondiente a la categoría Cine era hasta ahora https://www.labitacoradeltigre.com/category/cine/
, con un anglicismo como una casa. Lo mismo ocurre con las URL correspondientes a un autor del blog o las resultantes de una búsqueda, los cuales incluyen términos (author y search, respectivamente) no menos rechinantes para quienes aspiramos a que nuestros blogs no sean una mezcolanza de idiomas sin pies ni cabeza.
Aunque lo que voy a decir a continuación suene a excusatio non petita…, quiero poner de manifiesto que mi preocupación por este tipo de minucias no se debe a papanatismo lingüístico, sino a un deseo de elegancia y eficacia comunicativa que los lectores habituales de La Bitácora del Tigre habrán percibido en mis esfuerzos por traducir temas y plugins de WordPress al castellano (véanse, por ejemplo, los artículos del blog dedicados al tema Tarski). Por otra parte, yo no soy ningún enemigo de los extranjerismos; por ejemplo, en el asunto de las URLs que incluyen anglicismos hay algunos que me parecen más justificados que otros: es el caso de los enlaces permanentes de los que forma parte el término tag, puesto que esta palabra tiene significados que no son del todo evidentes en su equivalente castellano, etiqueta.
He buscado la solución a estos flagrantes extranjerismos, que aunque no sean muy molestos (pues afectan a un número relativamente reducido de URLs) sí afrentan mi sentido filológico, y la he encontrado, al menos parcialmente, en esa provechosa fuente de recursos y trucos para blogueros de WordPress que es aNieto2k. La solución al problema del category es tan sencilla como editar el fichero /wp-includes/rewrite.php y cambiar una línea de código, concretamente la 435 (en WordPress 2.5.1; para otras versiones, el código se encuentra en una línea diferente). Se trata de editar el fichero y sustituir la línea
$this->category_structure = $this->front . 'category/';
por esta otra
$this->category_structure = $this->front . 'categoria/';
Y ya está. El truco tiene el inconveniente de que afecta a los archivos del núcleo de WordPress, con lo cual habrá que repetirlo en cada actualización de la aplicación, con el riesgo consiguiente de olvidarse de hacerlo y volver a las URLs anglófilas (aunque ya se sabe que sin sufrimiento no hay gloria). Por cierto, si alguien sabe cómo resolver el problema de los términos author, search y otros anglicismos injustificables en las URLs (el truco anterior no funciona con ninguno de los dos términos), me hará un gran favor comunicándomelo.
Adenda del 12 de junio de 2008
Aunque poco tiene que ver con el contenido de esta entrada, hago constar aquí un nuevo hack al que he sometido a mi WordPress, como consecuencia de un fallo que he detectado en la generación de las URLs permanentes en el campo guid de la tabla wp_posts. Resulta que, desde hace algún tiempo (no sé si coincide con la actualización a WordPress 2.5.1 o con la instalación de un plugin), los permalinks generados por la aplicación en dicho campo no se ajustaban al modelo de URLs «amistosas» que yo tengo definido en las opciones de mi blog. En efecto, en vez de ser algo así como:
https://www.labitacoradeltigre.com/AAAA/MM/DD/loquesea/
se obtenía lo siguiente:
https://www.labitacoradeltigre.com/?p=XXX
Así que vuelta a buscar por esos mundos de Dios, en procura de una solución a esta irritante inconsistencia. Esta vez, la solución la he encontrado en viciao2k3, cuyo autor propone editar el fichero /wp-includes/post.php, responsable del error, y sustituir el código
// Set GUID
if ( !$update && " == $current_guid )
por este otro
// Set GUID
// if ( !$update && " == $current_guid )
Parece que con esta modificación se resuelven los problemas de las URLs de WordPress que he descrito en la presente entrada. Habrá que comprobar que el remedio no sea peor que la enfermedad… y, además, anotar cuidadosamente el cambio, para no olvidarlo en sucesivas actualizaciones del blog.
Cristobal dice
Hola, gracias por la información. Unas líneas más abajo tienes la de tag puesta así ‘tag/’, la puedes cambiar por etiqueta. Unas más arriba (la 380) tienes ‘date/’ que es fecha. Si quieres más fíjate que siguen esta nomenclatura ‘loquequierescambiar/’ , esos son los que puedes cambiar.
Pero ¡ojo! no cambies los que siguen la nomenclatura ‘%acepción%’ porque tu wp podría irse al garete.
Saludos
Antonio Omatos dice
Eduardo, no se si lo sabrás pero tus entradas salen duplicadas en GoogleReader.
He probado en Akregator y salen correctamente.
Saludos.
Eduardo Larequi dice
Como ya he escrito en la entrada, no me parece necesario cambiar la URL de «tag» por «etiqueta», y tampoco la de «date». Intenté cambiar el código de «%author%» y «%search%» por sus equivalentes, pero como tú muy bien dices las URLs se me fueron al garete. Y es que no son secuencias literales, sino variables, que en cada caso se sustituyen por el nombre del autor o el patrón de búsqueda.
Eduardo Larequi dice
Gracias por el aviso, Antonio. He probado con Google Reader y sólo veo duplicadas algunas entradas. En cambio, otros agregadores (FeedReader, por ejemplo) no las duplican. ¿Tú las ves duplicadas todas?
Por otra parte, he analizado el feed de FeedBurner con el FeedValidator, y no veo entradas duplicadas. Tampoco las veo examinando el fichero XML correspondiente. Tiene pinta de ser algún fallo de Google Reader, por ejemplo éste, que a su vez sería consecuencia de las acciones que realicé para actualizar el blog a la versión 2.5.1.
Fidel dice
Hola Eduardo;
En cuanto a la solución que propones referente a los permalinks:
«// Set GUID
//if ( !$update && ” == $current_guid )»
Puedo decirte que al menos a mí no me funciona, lo he probado y me sigue dando el mismo fallo, si hay alguién que consigua solucionar este problema vendría bien que lo compartiese con todos nosotros.
Salidos
Eduardo Larequi dice
A mí me ha funcionado a veces, Fidel. Creo que el problema tiene que ver con la forma en que se publica una entrada. Por ejemplo, creo que la publicación demorada provoca que no se guarde correctamente el permalink.
Por otra parte, tengo la impresión de que el problema puede estar relacionado con algún plugin. Tendría que hacer pruebas, pero me da bastante pereza.
Covi dice
Hola, umm… no sé cierto desde cuando (creo que wp2.5), pero al menos en WP2.6 es mucho más coherente y elegante usar la clase WP_Rewrite en dónde están establecidas la mayoría de las reglas de re-escritura y que puedes usar para «localizar» los permalinks. Algunos ejemplos obvios:
/* Sobre el patrón %search% */
$wp_rewrite->search_base = 'buscar';
/* Sobre %author% */
$wp_rewrite->author = 'autor';
/* etc... */
Igualmente para las estructuras:
$wp_rewrite->search_structure /* %_structure */
Se actualiza la estructura desde el Dashboard y andando ;)
Los problemas que hasta ahora yo al menos no he podido solucionar son para reglas no establecidas y que aún no he dado como hacerlo ya las funciones relacionadas no usan patrones. Son: attachment, page,… relacionadas con attachment_id, paged en get_permalink(), get_next|previous_post_link(), etc. Éstas sí que habría que editarlas a pelo por ahora :(
Un saludo ;)
Eduardo Larequi dice
Muchas gracias por el apunte, Covi. Te voy a mandar un mensaje privado para preguntarte alguna cosilla que no acabo de entender.
anthony dice
Covi, exactamente donde incializas esos parámetros :
/* Sobre el patrón %search% */
$wp_rewrite->search_base = ‘buscar’;
hata ahora no puedo cambiar http://miblog.com/search/texto+a+buscar
POR: http://miblog.com/buscar/texto+a+buscar
Espero la ayuda de alguien.
saludos