Je construis ma page d'options de thème et je souhaite utiliser l'éditeur Wordpress TinyMCE ici. J'appelle donc wp_editor
. Mais lorsque je sauvegarde des données, certaines entités sont ajoutées au contenu, par exemple, disons que je veux ajouter une image:
<img class="" title="" src="path_to_image" alt="" />
C'est ce que j'ai après avoir cliqué sur sauvegarder:
<img title="\"\"" src="\"path_to_image\"" alt="\"\"" />
Pourquoi cela change-t-il les citations en entités (et laisse-t-il les citations réelles - correctement affichées?) ??
@edit: Voici comment j'affiche mon éditeur:
$class = (isset($value['class'])) ? $value['class']:'';
$content = (get_option($value['id']) ? get_option($value['id']) : '');
$settings = array(
'textarea_name' => $value['id'],
'editor_class' => $class
);
wp_editor($content, strtolower($value['id']), $settings );
Et c’est ainsi que j’ai sauvegardé les données pour ce champ:
update_option($value['id'],
$_POST[ $value['id'] ]);
WordPress exécute addslashes
sur l'entrée POST
. La valeur que vous obtenez de la base de données ressemble probablement à:
<img title=\"\" …
… Et l'éditeur tente d'appliquer un balisage valide à partir de cela.
Alors… appelez l'éditeur avec…
wp_editor( stripslashes( $content ), strtolower($value['id']), $settings );
Moi aussi j'ai eu le même problème. Puis j'ai utilisé:
<? wp_editor(html_entity_decode(stripcslashes(get_option('wid1_cont'))), "editor1",$settings = array('textarea_name'=>'wid1_cont','textarea_rows'=>'5') ); ?>
Ça a marché..
parfois, le problème n'est pas en sauvegarde: c'est juste au stade de la visualisation.
Essayer:
wp_editor( html_entity_decode($content), strtolower($value['id']), $settings );