wp_editor añade entidades HTML al contenido

30 abr 2012, 20:44:58
Vistas: 13.6K
Votos: 6

Estoy construyendo mi página de opciones del tema y quiero usar el editor TinyMCE de WordPress aquí, así que estoy llamando a wp_editor. Pero cuando guardo los datos, se añaden algunas entidades al contenido. Por ejemplo, si quiero añadir una imagen:

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

Esto es lo que obtengo después de hacer clic en guardar:

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

¿Por qué está cambiando las comillas a entidades (y deja las comillas reales - mostradas correctamente?)??

@edit: Así es como muestro mi editor:

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

Y así es como guardo los datos para este campo:

update_option($value['id'],
$_POST[ $value['id'] ]);
0
Todas las respuestas a la pregunta 3
0
13

WordPress está aplicando addslashes a la entrada POST. El valor que obtienes de la base de datos probablemente se ve así:

<img title=\"\" …

… y el editor intenta imponer un marcado válido a partir de eso.

Entonces … llama al editor con …

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

Yo también tuve el mismo problema. Entonces usé:

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

Funcionó..

14 dic 2012 22:03:50
Comentarios

Por favor explica tu solución. ¿Por qué es mejor que otros enfoques?

fuxia fuxia
14 dic 2012 22:54:39

@Pavan Sé que dicen que no hay que comentar solo para agradecer, pero - ¡MUCHAS GRACIAS!

jerrygarciuh jerrygarciuh
4 nov 2016 00:52:33
0

A veces, el problema no está en guardar: es solo en la etapa de visualización.

Prueba:

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