web-dev-qa-db-fra.com

Supprimer les espaces à la fin des publications?

Mon auteur a tendance à ajouter des traits nouveaux (touche Entrée) et des espaces (barre d'espace) à la fin des publications. Parfois, il en résulte des pouces d’espace supplémentaire à l’écran!

Existe-t-il un moyen de m'assurer que les espaces de fin supplémentaires sont supprimés lorsqu'il clique sur "Update" dans l'éditeur de publication Wordpress?

1
a paid nerd

Une hypothèse rapide serait:

add_filter('content_save_pre', 'trim');

Ajoutez au functions.php du thème ou à tout autre endroit approprié sur votre site.

4
Rarst

Cela empêchera l'affichage des espaces insécables à la fin sans modifier réellement la publication dans la base de données lors de l'ajout à functions.php (ou à l'endroit où votre thème stocke des fonctions ajoutées par l'utilisateur).

 function trim_post_trailing_whitespace ($ content) {
 // utilise preg_replace pour convertir & nbsp; dans un caractère inutilisé "☺" (ALT 1) 
 // utilisez ensuite rtrim pour supprimer les caractères inutilisés "☺" 
 // maintenant, utilisez à nouveau rtrim pour supprimer les espaces blancs 
 // reconvertit maintenant le ou les caractères inutilisés "" en & nbsp; si utilisé ailleurs 
 // Retourner 
 
 
 $ content = preg_replace ("/ & nbsp; /", "☺", $ content); 
 $ content = rtrim ($ content, ""); 
 $ content = rtrim ($ content); 
 $ content = preg_replace ("/ ☺ /", "& nbsp;", $ content); 
 return $ content; 
 
/* Tout ce qui précède est simplifié en une seule équation 
 return preg_replace ("/ ☺ /", "& nbsp; ", rtrim (rtrim (preg_replace ("/& nbsp;/"," ", $ content)," ☺ "))); 
 */
} 
 
 add_filter ('the_content', 'trim_post_trailing_whitespace', 0); 
 // La priorité '0' signifie faire ce premier. 
2
UncaJoe

Le "problème" est que wordpress convertit "entre" dans les paragraphes (<p>). Les paragraphes de fin et de début résultent en de grands espaces blancs gâchant votre conception. L'éditeur wp (wysiwyg) est configuré de manière assez spacieuse, ce qui conduit souvent l'utilisateur à croire que le contenu est propre.

Vérifiez ce plugin très simple, Space Remover , il supprime ces paragraphes non voulus et vous donne également le contrôle de cette fonctionnalité. (au cas où vous souhaitiez utiliser cet espace supplémentaire sur certains messages/pages)

1
john23klipp

Si vous souhaitez supprimer non pas un mais plusieurs espaces insécables, vous pouvez utiliser une variante du code UncaJoes qui utilise également la valeur par défaut php rtrim charlist .

function trim_post_trailing_whitespace( $content ) {
    $content = preg_replace( '/&nbsp;/', '☺', $content );
    $content = rtrim( $content, '☺' . " \t\n\r\0\x0B" );
    $content = preg_replace( '/☺/', '&nbsp;', $content );
    return $content;
}
add_filter( 'the_content', 'trim_post_trailing_whitespace', 0 );
0
Ov3rfly