web-dev-qa-db-ja.com

名前に角かっこを使用すると、 "wp_editor"がTinyMCEを正しく表示しない

カスタムオプションページを作成していて、wp_editorを使用してTinyMCEエディタになったテキストエリアを持っています。

TinyMCEは正しく表示されますが、$ idに角括弧を含めると壊れます。これが私がadd_settings_field関数のコールバックに使っているコードです:

function px_wp_editor($args){
        $options    = get_option('theme_options');  
        $value      = $options['px_wp_editor'];
        $id         = 'theme_options[px_wp_editor]';

         extract( $args );
         $class = (!empty($class))?$class:'';

         $settings = array(
            'textarea_rows'     => 12,
            'textarea_name'     => $id, 
            'editor_class'      => $class,
            'media_buttons'     => true,
            'tinymce'           => true
         );
         wp_editor($value, $id, $settings );            
    }

$ id値から角かっこを削除した場合、それは正常に表示されます。ただし、get_optionを使用して値を取得する方法のため、現在のように "textarea_name"を角括弧で呼び出す必要があります。

下の最初の写真は、名前に角かっこを使用した場合の外観です(フルアイコンは正しく表示されず、ビジュアル/テキストボタンはありません)。

2番目の写真は、表示方法です。

Here's a screenshot of how it looks when using square brackets for the nameHere's how it should look

4
pixelkicks

角かっこをエディタIDとして使用することはできません。しかし、あなたはtextarea名を変更することができます。

wp_editor('','px_wp_editor',array('textarea_name' => 'theme_options[px_wp_editor]'));

重要なのは、 "id"と "textarea_name"が違うということです。

1
Rajilesh Panoli

今これをテストすることはできませんが、試してみてください。

$id = htmlentities('theme_options[px_wp_editor]');
0
Jack Lenox