web-dev-qa-db-fra.com

"wp_editor" n'affiche pas TinyMCE correctement lorsque les crochets sont utilisés dans le nom

Je crée une page d'options personnalisées et une textarea transformée en un éditeur TinyMCE à l'aide de wp_editor.

TinyMCE s'affiche correctement, mais il y a une rupture lorsque j'inclus des crochets dans le $ id. Voici le code que j'utilise pour le rappel de la fonction 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 );            
    }

Si j’ai supprimé les crochets de la valeur de $ id, alors cela s’affiche correctement. Cependant, en raison de la façon dont je récupère les valeurs à l'aide de get_option, je dois appeler "textarea_name" tel qu'il est actuellement, entre crochets.

La première image ci-dessous montre son apparence lorsque vous utilisez le nom entre crochets (les icônes complètes ne s'affichent pas correctement et il n'y a pas de boutons Visual/Text.

La deuxième photo est la suivante.

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

4
pixelkicks

Vous ne pouvez pas mettre de crochets comme identifiant d'éditeur. mais vous pouvez changer le nom de textarea par.

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

la partie importante est, "id" et "textarea_name" sont différents.

1
Rajilesh Panoli

Je ne suis pas en mesure de tester cela maintenant, mais essayez ceci:

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