Hace algún tiempo publiqué una versión alpha de un plugin que elimina todos los caracteres especiales de los permalinks (Ejm: ¿, !, etc). Si bien es cierto que este plugin hacía relativamente bien su trabajo, existía un bug en el para las entradas anteriores que contenían ese tipo de caracteres, devolvía una página de error (no encontrado).
Aprovechando el tiempo libre de estas fiestas de fin de año he corregido este bug, de modo que ahora el plugin sólo se ejecuta antes de guardar las entradas:
/*
Plugin Name: Permalink Fix
Plugin URI: http://www.buayacorp.com/
Description: Elimina algunos caracteres especiales de las URLs de las entradas (Ejm: ¿, !, etc).
Author: Alexander Concha
Version: 0.1.2
Author URI: http://www.buayacorp.com/
*/
// Based on sanitize_title_with_dashes method (wp-includes/formatting.php)
function custom_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 (function_exists('mb_strtolower') && seems_utf8($title)) {
$title = mb_strtolower($title, 'UTF-8');
} else {
$title = strtolower($title);
}
$title = preg_replace('/&.+?;/', '', $title); // kill entities
$title = preg_replace('/[^%a-z0-9 _-]/', '', $title);
$title = preg_replace('/[\s-]+/', '-', $title);
$title = trim($title, '-');
return $title;
}
function __enable_fix($post_name) {
remove_filter('sanitize_title', 'sanitize_title_with_dashes');
add_filter('sanitize_title', 'custom_sanitize_title_with_dashes');
return $post_name;
}
add_filter('pre_post_name', '__enable_fix');
?>
Si por azares del destino alguien está usando este plugin 😀 , es recomendable que actualicen para evitar este molesto error. Pueden descargar la actualización desde este blog o desde mi repositorio temporal de código.
11 replies on “Nueva versión del plugin “Permalink Fix””
la referencia al formatting da errores fatales entre otras cosas... como una linea cortada.
funciona con el guion largo?
–
Mario: Hmm, no entiendo muy bien a qué te refieres, ¿es algún bug en el plugin o algo por el estilo? porque sería raro que el plugin genere errores fatales.
Dubó: El guión largo y cualquier otro caracter especial es eliminado. Si la entrada tiene el título "2008—¿más trabajo?" el enlace generado quedará como "2008mas-trabajo".
Excelente tocayo, voy a utilizarlo (deberías hacer un ticket para que lo implementaran en WordPress 2.4)
Feliz año =)
Alex: El plugin causaría muchos problemas en algunos idiomas.
¡Feliz 2008!
[...] Descripción: Permalink Fix Plugin [...]
[...] Nueva versión del plugin “Permalink Fix” en Buayacorp - Diseño y Programación Plugin de WordPress para corregir carácteres raros en el permalink (tags: wordpress plugin plugins) Archivado en: Links Diarios | Etiquetas: No Tags. Search [...]
[...] De todas formas si tenéis dudas o preguntas, preguntarme lo que queráis en los comentarios, o consultar la página del creador del plugin. [...]
[...] o retocar posteriormente cada entrada para editar su permalink y que no muestre los %. Existe un plugin que vigila que no se cometan errores de este tipo muy [...]
Hola .
Solo hay que activarlo en la lista de plugin y listo, trabaja solito al momento de crear un articulo,
o hay que configurar alguna opcion ?
y si ya tenngo creado un articulo cuyo titulo ya tiene caracteres extraños , que devo hacer para que me los corrija?
gracias..
[...] Permalink fix: WordPress “limpia bien” los caracteres “raros” tipo “?” ó “!”, pero lo hace “a la inglesa”, es decir, que limpia los del final pero se deja los del principio (¿, ¡). Con este plugin se soluciona este problema [...]