wp_editor adaugă entități HTML în conținut

30 apr. 2012, 20:44:58
Vizualizări: 13.6K
Voturi: 6

Construiesc pagina de opțiuni pentru tema mea și vreau să folosesc editorul TinyMCE din WordPress, așa că apelez la wp_editor. Dar când salvez datele, unele entități sunt adăugate în conținut. De exemplu, dacă vreau să adaug o imagine:

<img class="" title="" src="path_to_image" alt="" />

Iată ce am obținut după salvare:

<img title="\&quot;\&quot;" src="\&quot;path_to_image\&quot;" alt="\&quot;\&quot;" />

De ce se transformă ghilimelele în entități (și lasă ghilimelele reale - afișate corect?)??

@edit: Așa afișez editorul meu:

    $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 );

Și așa salvez datele pentru acest câmp:

update_option($value['id'],
$_POST[ $value['id'] ]);
0
Toate răspunsurile la întrebare 3
0
13

WordPress rulează funcția addslashes pe datele introduse prin POST. Valoarea pe care o obții din baza de date arată probabil astfel:

<img title=\"\" …

… iar editorul încearcă să impună un markup valid din acea valoare.

Deci … apelează editorul cu …

wp_editor( stripslashes( $content ), strtolower($value['id']), $settings );
30 apr. 2012 22:00:47
2

Am avut și eu aceeași problemă. Apoi am folosit:

<?php wp_editor(html_entity_decode(stripcslashes(get_option('wid1_cont'))), "editor1", $settings = array('textarea_name' => 'wid1_cont', 'textarea_rows' => '5')); ?>

A funcționat...

14 dec. 2012 22:03:50
Comentarii

Te rog să explici soluția ta. De ce este mai bună decât celelalte abordări?

fuxia fuxia
14 dec. 2012 22:54:39

@Pavan Știu că se spune să nu comentezi "Mulțumesc", dar - MULȚUMESC!

jerrygarciuh jerrygarciuh
4 nov. 2016 00:52:33
0

uneori, problema nu este în salvarea datelor: este doar în etapa de vizualizare.

Încearcă:

 wp_editor( html_entity_decode($content), strtolower($value['id']), $settings );
12 sept. 2012 18:26:42