web-dev-qa-db-fra.com

Tinymce/Wordpress supprime tous les sauts de ligne?

Dans mon thème wordpress, j'ai un panneau d'options personnalisées avec textareas qui utilise le script tinymce inclus avec wordpress.

Cela fonctionnait bien jusqu'à ce que je passe à la dernière version de wordpress (3.2). Maintenant, l'éditeur fonctionne toujours, mais il supprime toutes les balises de paragraphe et de saut de ligne une fois que j'ai enregistré mon code. Tout en mettant mon texte dans l'éditeur, il a fière allure et affiche tous les sauts de ligne dans l'aperçu, mais une fois que je l'ai enregistré, ils sont tous partis. Les autres tags (b, img, a) semblent bien fonctionner.

Maintenant, cela peut être un problème avec wordpress, mais sur la même main, la mise à jour de wordpress incluait également la version la plus récente et la plus récente de Tinymce, ce qui peut être à l'origine du problème.

Lorsque je désactive l'éditeur Tinymce et que j'utilise des zones de texte standard, toutes les balises et tous les sauts de ligne sont enregistrés sans problème.

EDIT: ça marche. Nécessaire pour envelopper mes valeurs de sortie dans wpautop () avant de sauvegarder. Alors maintenant, ma valeur est wpautop ($ output [$ option_array ['id']]);

Voici le code que j'utilise pour lancer l'éditeur Tinymce:

    <?php
wp_tiny_mce( false , // true makes the editor "teeny"
    array(
        'theme' => 'advanced',
        'skin' => 'default',
        'theme_advanced_resizing' => 'false',
        'theme_advanced_path' => 'false',
        'theme_advanced_buttons2' => '',
        'theme_advanced_buttons1' => 'code,bold,italic,underline,|,justifyleft,justifycenter,justifyright,forecolor,fontsizeselect,link,unlink,image',
         'width' => '650px',
         'media_strict' => 'false',
'valid_elements' => '*',
'extended_valid_elements' => '*',
)
);


?>
3
Levi

Vous devrez peut-être utiliser l'un des paramètres de configuration suivants:

// Don't remove line breaks
'remove_linebreaks' => false; 
// Convert newline characters to BR tags
'convert_newlines_to_brs' => true; 

WordPress passe un tableau d'arguments $init à TinyMCE qui définit la valeur opposée pour chacun de ces paramètres.

Je suppose que vous pouvez les passer directement dans votre tableau d’arguments wp_tiny_mce(), mais je n’ai pas essayé; Je les passe en tant que paramètres de tableau pour un filtre personnalisé du tableau TinyMCE $init.

1
Chip Bennett

Je ne charge pas l'éditeur complet, mais le choix consiste à contrôler quels plugins TinyMCE sont chargés. Par exemple, pour mes besoins, je n'ai besoin que du plugin paste, alors j'ai ajouté:

'plugins' => 'paste'

au tableau.

Je ne sais pas avec certitude quel plug-in entraîne la suppression des balises p et br, mais quelques essais et erreurs ou une exploration du code des plug-ins vous permettent de trouver lequel ne pas inclure. Voici les plugins chargés par défaut:

'inlinepopups', 'spellchecker', 'tabfocus', 'paste', 'media', 'wordpress', 'wpfullscreen', 'wpeditimage', 'wpgallery', 'wplink', 'wpdialogs'
0
Steven Zahm

Lorsque vous affichez vos valeurs sur le front-end, lancez-le à travers le filtre: 'the_content'. Il existe également une fonction qui doit être appelée avant de préparer le contenu dans la saisie de texte.

0
Tom J Nowell