web-dev-qa-db-fra.com

wp_editor ajoute des entités HTML au contenu

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="\&quot;\&quot;" src="\&quot;path_to_image\&quot;" alt="\&quot;\&quot;" />

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'] ]);
5
smogg

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 );
11
fuxia

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é..

4
Pavan

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 );
1
Marcus