web-dev-qa-db-ja.com

wp_editorはHTMLエンティティをコンテンツに追加します

私は自分のテーマオプションページを作成していて、ここではWordpress TinyMCEエディタを使用したいので、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'] ]);
5
smogg

WordPressはaddslashes入力でPOSTを実行しています。データベースから得られる値は、おそらく次のようになります。

<img title=\"\" …

…そしてエディタはそれから有効なマークアップを強制しようとします。

それで…エディタを…で呼び出してください。

wp_editor( stripslashes( $content ), strtolower($value['id']), $settings );
11
fuxia

私も同じ問題を抱えていました。それから私は使用しました:

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

出来た..

4
Pavan

時々、問題は保存されていません:ただビューステージにあります。

試してください:

 wp_editor( html_entity_decode($content), strtolower($value['id']), $settings );
1
Marcus