web-dev-qa-db-fra.com

Comment puis-je améliorer la gestion des sauts de ligne dans l'éditeur WYSIWYG?

Je me trouve toujours en mode HTML dans l'éditeur pour essayer d'obtenir des choses simples, telles que des pauses entre les paragraphes, pour qu'elles s'affichent correctement (avec <p></p>). Est-ce normal? Existe-t-il un meilleur éditeur que je pourrais utiliser?

5
tooshel

Qu'est-ce qui se passe, c'est que TinyMCE convertit chaque saut de ligne double dans la source HTML en <p></p> et vice versa. En fait, il supprimera tout <p/> que vous avez entré manuellement dans la source HTML après avoir sauvegardé, car lorsque le contenu de la publication sera rendu, <p> et </p> seront ajoutés.

Le remplacement auto -<p> ne fonctionne que lorsque vous restituez le contenu d'une publication avec <?php the_content() ?>; si vous produisez directement $post->post_content, il ne passera pas par les mêmes crochets de mise en forme et aura une apparence simple, sans sauts de ligne ni paragraphes.

Si vous voulez beaucoup de balises <br/> dans le balisage affiché, vous devriez probablement trouver une meilleure solution basée sur CSS et sur l’utilisation des propriétés CSS margin ou padding.

8
Asbjørn Ulsberg

Je suis d'accord avec certains des messages ci-dessus, en tant que réponses directes à la question (qui suppose l'utilisation continue de l'éditeur WYSIWYG). Mais après le procès, je dois au moins recommander de revoir et de passer à l'éditeur HTML.

En supposant que vous soyez toujours avec moi (vous le considérez comme une option), il y a plus. "Ah," dites-vous, "l'éditeur HTML ajoute toujours des sauts de ligne et gâche généralement avec moi!" C'est la raison pour laquelle vous devez supprimer le filtre auto-p. Pour faire bonne mesure, étant donné que je passe au format HTML le plus pur possible, je retire le texturiseur, qui gère des éléments tels que des guillemets bouclés.

Accédez à votre éditeur de thème. Accédez au fichier "Fonctions de thème" (functions.php). Ajouter ce qui suit:

remove_filter ('the_content', 'wpautop');
remove_filter('the_content', 'wptexturize');

Mais j'ajoute aussi ceci si je prévois d'utiliser des extraits de post/page:

remove_filter ('the_excerpt', 'wpautop');
remove_filter('the_excerpt', 'wptexturize');

J'espère que cela pourra aider! Et franchement ... je n'ai jamais essayé de désactiver les filtres aux côtés de l'éditeur visuel! Peut-être que cela aide aussi à cet égard!

5
Greg

Je recommande TinyMCE Advanced aussi, je préfère avoir plus de contrôle sur le code HTML modifiable par l'utilisateur sur le site. Il y a une option Stop removing the P and BR tags when saving and show them in the HTML editor qui fera l'affaire, elle est décochée par défaut, donc une fois installé, vous devez entrer dans les paramètres et l'activer. Un autre avantage est la possibilité d'afficher/masquer divers aspects de l'éditeur afin que vous puissiez supprimer les boutons avec lesquels les utilisateurs finaux pourraient éventuellement jouer et essayer d'être "créatifs" avec leur formatage de contenu! De nombreuses options indésirables sont activées par défaut. Vous devez donc supprimer les options inutiles.

2
Rick Curran

J'utilise le plugin Disable WPautop , qui, comme prévu, désactive la fonction wpautop . Cela pourrait être utile, selon votre situation.

1
Travis Northcutt

En bref: oui. C'est normal.

Non, il n'y a pas de meilleurs éditeurs sur le marché.

Vous pouvez essayer TinyMCE Advanced et voir si cela vous aide.

De plus, si vous utilisez des backticks (`) sur ce site, cela échappera à votre code HTML:

<br />

1
John P Bloch

La raison pour laquelle vous rencontrez des problèmes est que WordPress préfère utiliser

balises, qui sont plus sémantiques que les sauts de ligne.

0
scribu