Pas de filtre de code lors du passage du HTML au Visual Editor, comment?

9

Oui, j'ai trouvé d'autres questions sur ce sujet, mais aucun n'a exactement le même sujet et aucune solution à mon problème.

Si vous incluez du code dans l'onglet html et que vous passez en mode visuel, puis formatez WP le code en un bloc, supprimez tous les sauts et laissez des lignes, voir les captures d'écran. Je pense que c'est plus facile à comprendre que mon mauvais anglais.

mon exemple dans html-tab entrez la description de l'image ici

le même exemple après le passage au visuel entrez la description de l'image ici

Mes tests pour une solution. J'ai testé cela pour arrêter WP pour cela avec le plugin de test suivant, également lisible dans ce Gist 1663554

add_filter( 'tiny_mce_before_init', 'fb_tinymce', 9 );

function fb_tinymce( $init ) {

    $init['fix_list_elements'] = FALSE;
    $init['wpautop'] = FALSE;
    $init['remove_linebreaks'] = FALSE;
    $init['apply_source_formatting'] = TRUE;
    $init['extended_valid_elements'] .= ',pre[*],code[*]';

    return $init;
}

Peut-être qu'un autre lecteur a une solution pour ce sujet.

bueltge
la source
Ai-je bien compris? Vous voulez arrêter l'éditeur pour supprimer les sauts de ligne dans le code?
kaiser
oui, si vous incluez du code dans l'éditeur html et passez en mode visuel, WP supprime toutes les ruptures, paragraphe. Cela fonctionne avec le editor.js et je n'aime pas un filtre pour cela; est peut-être codé en dur et mon seul objectif est de remplacer ce js; mais ce n'est pas très beau; je désactiverai cette fonction une fois.
bueltge

Réponses:

3

Oui, c'est une douleur totale. 99% des didacticiels «désactiver wpautop» manquent complètement l'événement de changement d'onglet. Quoi qu'il en soit, vous devriez essayer mon plugin - http://wordpress.org/extend/plugins/preserved-html-editor-markup/

Non seulement cela protègera votre balisage contre les modifications par wpautop, mais il préservera les sauts de ligne et l'indentation tout en vous permettant d'utiliser à la fois l'éditeur HTML et l'éditeur visuel.

La version actuelle désactivera vraiment wpautop, donc si vous avez un contenu existant qui dépend de wpautop, votre site peut ne pas s'afficher correctement sans modifier le contenu existant. Je travaille sur une nouvelle version qui reformatera par lots le contenu existant pour corriger cela. Il devrait être prêt d'ici la fin de la semaine.

Marcus Pope
la source
La version 1.5 est sur le point de sortir, qui inclura également la prise en charge de vrais blocs de script. Et la version 1.4 (stable actuelle) permet l'inclusion conditionnelle de balises p ou de balises br, vous pouvez donc utiliser l'une ou l'autre en fonction de vos préférences.
Marcus Pope
Avez-vous réalisé les fonctions de ma question avec JS ou PHP, via Filter? Je recherche uniquement une fonction, que le code à l'intérieur preou coden'a pas été modifié par tinyMCE. Je ne vais pas une solution, il y a des filtres après the_content, alors que c'est plus de performances. Merci!
bueltge
@bueltge - Je n'ai pas bien compris la question. Mon plugin fait beaucoup pour résoudre ce problème, donc je ne peux pas décrire brièvement les filtres spécifiques que j'ai utilisés. Vous pouvez certainement consulter le code source de mon plugin pour savoir comment je l'ai fait.
Marcus Pope
Oui, je peux lire dans votre source; mais c'est peut-être plus facile si vous me donnez une note sur la solution pour seulement mon problème de la question. Votre plugin corrige de nombreux sujets dans ce domaine.
bueltge
0

Je pense que la solution la plus simple pour ce que vous décrivez est un plugin comme: http://wordpress.org/extend/plugins/wp-no-format/

Cependant, vous voudrez peut-être également regarder les plugins de mise en évidence de la syntaxe ... il y en a même un pour incorporer les gists par id.

jb510
la source
Je pense que ce n'est pas une solution, ce filtre plugin uniquement the_content-Hook. Ce hook est uniquement sur l'interface pour obtenir le contenu, pas à l'intérieur de l'éditeur.
bueltge
Désolé. C'est vrai, cela n'empêche pas le commutateur de l'éditeur visuel de reformater le code .... Cela fait longtemps que id ne l'a pas utilisé et en regardant maintenant l'ancien site, je l'ai utilisé en conjonction avec Désactiver Visual Editor.
jb510
0

Utilisez le plugin Scripts n Styles. http://wordpress.org/extend/plugins/scripts-n-styles/ Il a été inventé pour "sauter à travers les cerceaux" et éviter les bogues wpautop, en particulier les bogues de changement de tabulation.

Vous devez saisir [sns_shortcode name = "{name}"] dans l'éditeur et votre contenu dans l'onglet Shortcodes. C'est la syntaxe mise en évidence et j'ai travaillé dur pour bien la coder.

WraithKenny
la source