web-dev-qa-db-fra.com

Comment empêcher les apostrophes et les guillemets d'apparaître dans les permaliens?

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.

6
user1462

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;
}
5
editor

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.

3
Fernando Briano