Pour que les entrées héritées d'un blog hébergé sur TypePad restent synchronisées avec une nouvelle installation WordPress ...
Comment mapper ce lien permanent avec des lettres accentuées:
domain.com/no-es-fácil-alejarse-de-la-política
à ce WP propre, permalien sans lettre accentuée:
domain.com/no-es-facil-alejarse-de-la-politica
Quelle est la meilleure façon d'y parvenir?
Pour ce faire, la meilleure solution consiste à supprimer le filtre sanitize_title par défaut et à le remplacer par le vôtre, qui encodera correctement ces caractères. Voici une implémentation de utilisant des accents dans les permaliens .
Exemple:
remove_filter( 'sanitize_title', 'sanitize_title_with_dashes');
add_filter( 'sanitize_title', 'restore_raw_title', 9, 3 );
function sweURLtoCHAR($text)
{
$url=array(
"%C3%81","%C3%A1",
"%C3%8D","%C3%AD"
);
$char=array(
"Á","á",
"Í","í"
);
$str = str_replace($char,$url,$text);
$str_new = str_replace(" ", "", $str);
return strtolower($str_new);
}
function restore_raw_title( $title, $raw_title, $context ) {
if ( $context == 'save' )
return sweURLtoCHAR($raw_title);
else {
$title_new = str_replace(" ", "", $title);
return strtolower($title_new);
}
}
Vous pouvez trouver les caractères et leur hex utf8 ici et construire un tableau avec les caractères accentués dont vous avez besoin.