wake-up-neo.com

"wp_editor" zeigt TinyMCE nicht korrekt an, wenn eckige Klammern im Namen verwendet werden

Ich erstelle eine benutzerdefinierte Optionsseite und habe ein Textfeld, das ich mit wp_editor in einen TinyMCE-Editor umgewandelt habe.

TinyMCE wird korrekt angezeigt, bricht jedoch ab, wenn die $ id in eckige Klammern eingeschlossen wird. Hier ist der Code, den ich für den Funktionsrückruf von add_settings_field verwende:

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

Wenn ich die eckigen Klammern aus dem $ id-Wert entfernt habe, wird alles in Ordnung angezeigt. Aufgrund der Art und Weise, wie ich die Werte mit get_option abrufe, muss ich "textarea_name" wie bisher in eckigen Klammern angeben.

Das erste Bild unten zeigt, wie es aussieht, wenn eckige Klammern für den Namen verwendet werden (vollständige Symbole werden nicht korrekt angezeigt und es gibt keine visuellen/Text-Schaltflächen.

Das zweite Bild ist, wie es angezeigt werden soll.

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

4
pixelkicks

Sie können keine eckigen Klammern als Editor-ID setzen. Sie können den Textfeldnamen jedoch mit ändern.

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

der wichtige Teil ist, dass "id" und "textarea_name" unterschiedlich sind.

1
Rajilesh Panoli

Ich kann das momentan nicht testen, aber probiere es aus:

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