web-dev-qa-db-fra.com

Supprimer le double espace après une période

Je gère une plate-forme multi-auteurs avec plus de 1000 écrivains. La plupart des utilisateurs rédigent leur contenu en externe (Microsoft Word, OpenOffice, etc.) et le collent dans Visual Editor. Environ 20% des articles ont un double espace après chaque période.

Les commentaires des utilisateurs me disent que certaines versions de ces programmes ajoutent deux espaces après un arrêt complet au lieu d'un. J'ai initialement lié ces utilisateurs à des didacticiels expliquant comment résoudre ce problème dans l'application externe elle-même. Toutefois, la croissance de la plate-forme en fait une tâche ridiculement épuisante.

Est-il possible de supprimer tous les doubles espaces et de les convertir en un seul espace sur la page de publication ? Peut-être en cliquant sur publier. Ce serait idéal si cela se passait sur la page de publication du backend plutôt que sur le front-end (grâce à un correctif de style) - bien que je sois ouvert aux idées.

Sur une note personnelle, je trouve assez étonnant que cette fonctionnalité ne fasse pas partie des fonctions de base de Wordpress, étant donné qu’au moins 20% de mes auteurs en font l’expérience.

2
Amanda Duke

Je ne peux pas proposer de solution JavaScript, car je ne sais pas exactement où cela se produit.

Mais… nous pouvons nous connecter à wp_insert_post_data et résoudre ce problème en PHP:

add_filter( 'wp_insert_post_data', 't5_strip_double_spaces', 20 );

function t5_strip_double_spaces( $data )
{
    $data['post_content'] = preg_replace(
        "~( \x{C2}\x{A0}|\x{C2}\x{A0} )~m",
        ' ',
        $data['post_content']
    );
    return $data;
}

En tant que plugin sur GitHub .

5
fuxia

Ajoutez ceci à votre fichier functions.php

<?php

function my_the_content_filter ($content)
{
    str_replace('.  ', '. ', $content);

    return $content;
}

add_filter('the_content, 'my_the_content_filter');

Ce devrait faire l'affaire. J'espère que ça aide!

Page Codex pour référence

1
Alex Lane