wp_editor добавляет HTML-сущности в контент

30 апр. 2012 г., 20:44:58
Просмотры: 13.6K
Голосов: 6

Я создаю страницу настроек темы и хочу использовать TinyMCE редактор WordPress, поэтому вызываю wp_editor. Но при сохранении данных в контент добавляются некоторые сущности. Например, если я хочу добавить изображение:

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

После сохранения получаю:

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

Почему кавычки преобразуются в сущности (при этом оставляя реальные - правильно отображаемые кавычки)???

@edit: Вот как я вывожу редактор:

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

А вот как я сохраняю данные для этого поля:

update_option($value['id'],
$_POST[ $value['id'] ]);
0
Все ответы на вопрос 3
0
13

WordPress применяет функцию addslashes к данным из POST. Значение, которое вы получаете из базы данных, вероятно, выглядит так:

<img title=\"\" …

… и редактор пытается привести это к валидной разметке.

Поэтому … вызывайте редактор с …

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

У меня была такая же проблема. Затем я использовал:

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

Это сработало.

14 дек. 2012 г. 22:03:50
Комментарии

Пожалуйста, объясните ваше решение. Почему оно лучше других подходов?

fuxia fuxia
14 дек. 2012 г. 22:54:39

@Pavan Я знаю, что говорят не благодарить в комментариях, но - СПАСИБО!

jerrygarciuh jerrygarciuh
4 нояб. 2016 г. 00:52:33
0

Иногда проблема не в сохранении, а на этапе отображения.

Попробуйте:

wp_editor(html_entity_decode($content), strtolower($value['id']), $settings);
12 сент. 2012 г. 18:26:42