J'utilise des permaliens personnalisés "/% category% /% postname% /". Chaque fois qu'un titre de publication contient des guillemets ou des apostrophes, ils apparaissent dans l'URL.
Quelqu'un peut-il me dire comment les empêcher d'apparaître dans la limace?
J'utilise WordPress 3.0.4.
Dans WordPress, "---" et "-" deviennent des tirets-em (- —
) et "-" deviennent un tiret (- #8212;
). La fonction sanitize_title_with_dashes () ne les détecte pas.
Cette fonction utilise la copie avec base de données, mais le titre affiché à l’utilisateur passe toujours par une fonction de texturation. Donc, si nous remplaçons les tirets en/em lors de leur insertion dans la base de données, le résultat net sera le même et nous éviterons ces mauvais cas d'URL, les titres étant re-texturés.
add_action( 'title_save_pre', 'do_replace_dashes' );
function do_replace_dashes($string_to_clean) {
# The html entities (– and —) don’t actually work but I include them for kicks and giggles.
$string_to_clean = str_replace( array('—', '—', '–', '–', '‚', '„', '“', '”', '’', '‘', '…'), array(' -- ',' -- ', '--','--', ',', ',,', '"', '"', "'", "'", '...'), $string_to_clean );
return $string_to_clean;
}
J'ai vu qu'il existe des plugins pour contourner ce problème. Vérifier Nettoyer l'URL par exemple:
Ce plugin WordPress simple est utilisé lors de la génération d’un slug d’article (= nom de l’article utilisé dans l’URL). Il supprime tous les caractères autres que les lettres a-z, les chiffres et les traits d'union (-). Le plugin étant le dernier du processus de génération d'URL, tous les remplacements standard de diacritiques et d'accents sont effectués, puis, si des caractères étranges sont présents, ils sont supprimés.