web-dev-qa-db-fra.com

Comment mapper des permaliens avec des lettres accentuées sur des limaces désinfectées?

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?

3
Juan

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.

3
aWordpress

Vous pouvez faire une redirection avec .htacces ou peut-être essayer la redirection du plugin wordpress .

0
Zombaya