Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Eñes y tildes en URL de Wordpress

Estas en el tema de Eñes y tildes en URL de Wordpress en el foro de WordPress en Foros del Web. Hola. ¿Es posible cambiar, modificar, inventr o descubrir algo para que en las URLs de Wordpress salgan las tildes y eñes? Actualmente las URLs son ...
  #1 (permalink)  
Antiguo 07/10/2010, 09:45
 
Fecha de Ingreso: agosto-2008
Ubicación: Bogotá
Mensajes: 148
Antigüedad: 15 años, 8 meses
Puntos: 2
Eñes y tildes en URL de Wordpress

Hola.

¿Es posible cambiar, modificar, inventr o descubrir algo para que en las URLs de Wordpress salgan las tildes y eñes?

Actualmente las URLs son convertidas a algo así:

Código:
www.sjhfghkldhg.com/nandu-y-serpiente
¿Se puede hacer que quede así:?

Código:
www.sjhfghkldhg.com/ñandú-y-serpiente
Les agradezco cualquier solución.
  #2 (permalink)  
Antiguo 07/10/2010, 16:01
 
Fecha de Ingreso: abril-2003
Mensajes: 1.129
Antigüedad: 21 años
Puntos: 34
Respuesta: Eñes y tildes en URL de Wordpress

Solución no se, pero si te animás a tocar código, creo que la solución está en editar estas líneas.

Sería cuestión de probar.

En wp-includes/formating.php encontrarás esto.

Código PHP:
function sanitize_title_with_dashes($title) {
    
$title strip_tags($title);
    
// Preserve escaped octets.
    
$title preg_replace('|%([a-fA-F0-9][a-fA-F0-9])|''---$1---'$title);
    
// Remove percent signs that are not part of an octet.
    
$title str_replace('%'''$title);
    
// Restore octets.
    
$title preg_replace('|---([a-fA-F0-9][a-fA-F0-9])---|''%$1'$title);

    
$title remove_accents($title);
    if (
seems_utf8($title)) {
        if (
function_exists('mb_strtolower')) {
            
$title mb_strtolower($title'UTF-8');
        }
        
$title utf8_uri_encode($title200);
    }

    
$title strtolower($title);
    
$title preg_replace('/&.+?;/'''$title); // kill entities
    
$title str_replace('.''-'$title);
    
$title preg_replace('/[^%a-z0-9 _-]/'''$title);
    
$title preg_replace('/\s+/''-'$title);
    
$title preg_replace('|-+|''-'$title);
    
$title trim($title'-');

    return 
$title;

$title = remove_accents($title);

Empezaría borrando esa linea a ver que pasa
__________________
elGastronomo
  #3 (permalink)  
Antiguo 09/10/2010, 17:44
 
Fecha de Ingreso: agosto-2008
Ubicación: Bogotá
Mensajes: 148
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Eñes y tildes en URL de Wordpress

¡Perfecto! Así de sencillo era.

Vi otra línea que dice $username = remove_accents($title);, la cual, supongo, hace lo mismo con los usuarios... Interesante.

Muchas gracias, American2010.
  #4 (permalink)  
Antiguo 09/10/2010, 21:52
 
Fecha de Ingreso: agosto-2008
Ubicación: Bogotá
Mensajes: 148
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Eñes y tildes en URL de Wordpress

Ahora tengo un pequeño inconveniente...

Pues vale, estuve haciendo algunas pruebas, y déjenme decirles que funciona a la perfección con los enlaces permanentes de las entradas, con las categorías, con las etiquetas... En resumen, funcionan a la perfección URLs como las siguientes:

jfkdghfdgbvdf.com/categoría/bogotá (Filtrando por categoría)
jfkdghfdgbvdf.com/etiqueta/cigüeñas (Filtrando por etiquetas)
jfkdghfdgbvdf.com/bogotá/qué-sé-yo (enlace permanente de entrada)


Pero... Desgraciadamente hay un pero ... No funciona con las páginas. Cuando creo una página con alguna tilde, eñe, etc., e intento acceder a ella, no me la muestra. Aparece el típico mensage de error como si no exixtiera. La edito, le quito la tilde o eñe y ya me la muestra.

¿Por qué? ¿Por qué no funciona con las páginas?



Código:
saul@escritorio:~/wordpress$ find . -type f | xargs grep "remove_accents"
./wp-includes/formatting.php:function remove_accents($string) {
./wp-includes/formatting.php:   $username = remove_accents( $username );
./wp-includes/formatting.php:   $title = remove_accents($title);
saul@escritorio:~/wordpress$
Al parecer eso es todo lo que hay. Comenté las dos últimas líneas y toda la primera "función", para salir de dudas, pero no ha solucionado nada.

Aaaahhhh... Voy a llorar...

¿Alguna idea?
  #5 (permalink)  
Antiguo 10/10/2010, 16:09
 
Fecha de Ingreso: abril-2003
Mensajes: 1.129
Antigüedad: 21 años
Puntos: 34
Respuesta: Eñes y tildes en URL de Wordpress

Habría que buscar ahora, dónde WP interpreta las URLS y ver que problemas tiene cuando la URL que tiene que interpretar contiene acentos.

Lo más probable es que esa parte del código depure la URL que lee desde el navegador y al encontrarse con acentos y ñs se vuelva loco y no sepa como seguir.

No se si no habría que hacer un URL encode. eso de que los acentos y eñes se transforman en %algo (creo)

Podrías empezar sumando a mano la función URL encode (Lee sobre ella en php.net) al titulo.
__________________
elGastronomo
  #6 (permalink)  
Antiguo 10/10/2010, 16:21
 
Fecha de Ingreso: abril-2003
Mensajes: 1.129
Antigüedad: 21 años
Puntos: 34
Respuesta: Eñes y tildes en URL de Wordpress

Bueno, me puse a probarlo en mi XAMPP para ver si iba, y me funcionó perfecto.

Y encontré un plugin que hace lo que dijimos. http://projectivemotion.com/releases...ess-permalinks

Cita:
// THIS LINE BELOW IS RESPONSIBLE FOR REMOVING ACCENTS.. WERE SIMPLY BYPASSING IT.
// $title = remove_accents($title);
// END OF sanitize_title_with_dashes hack
Así que nuestro concepto no es errado.




Usando el último WP 3.0.1 en Español

El "Cotejamiento" de mi DB o como se llame es "utf8_general_ci"

Si voy a la DB en WP_Post busco el post en cuestión y en post_title pone "Post con eñe" y en post_name "post-con-e%c3%b1e"

No se me ocurre que más podrías revisar.
__________________
elGastronomo
  #7 (permalink)  
Antiguo 10/10/2010, 22:26
 
Fecha de Ingreso: agosto-2008
Ubicación: Bogotá
Mensajes: 148
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Eñes y tildes en URL de Wordpress

Cita:
Iniciado por American2010 Ver Mensaje
Usando el último WP 3.0.1 en Español
Igualmente.

Cita:
Iniciado por American2010 Ver Mensaje
El "Cotejamiento" de mi DB o como se llame es "utf8_general_ci"
Igual.

Cita:
Iniciado por American2010 Ver Mensaje
Si voy a la DB en WP_Post busco el post en cuestión y en post_title pone "Post con eñe" y en post_name "post-con-e%c3%b1e"
Igual. Y tanto para las entradas como para las páginas es igual.

Hice comparaciones con otra página que no usa eñes ni tildes ni nada, y no hay nada diferente. También lo comparé con una entrada que sí usa eñes y tampoco hay nada diferente.

Lo único que noté es que en la columna «guid», los posts tienen la url real de dicho post, por ejemplo jhfudhgdkjfhd.com/?p=26, mientras que las páginas sólo ponen jhfudhgdkjfhd.com/. Probé cambiando ese campo y agrgándole el ID de la página para que quedara como los posts, pero igual me redirige la URL "amigable" y no la encuentra; además tampoco debería ser ése un problema porque todas las páginas están así y las que no tienen eñes funcionan bien.

Ya no creo que el problema esté en la base de datos... Debe estar en el código de WP... El problema es saber dónde. Igual sigue siendo un misterio para mí el hecho de que funcionen las URLs con eñes en las entradas, categorías y etiquetas, pero no en las páginas...


Etiquetas: eñes, tildes, url
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 03:33.