Cómo establecer el ancho del editor WYSIWYG en la función wp_editor()
Este es mi código actual:
$initial_data = $this->options['my_plugin_editor'];
$settings = array(
'quicktags' => array('buttons' => 'em,strong,link',),
'quicktags' => true,
'tinymce' => true,
'textarea_rows' => 20,
);
$id = 'my_plugin_editor_options[my_plugin_editor]';
wp_editor($initial_data,$id,$settings);
El problema es que no puedo establecer el ancho del editor. Puedo configurar la altura 'textarea_rows' => 20
, pero no encuentro una manera de establecer el ancho (cols).
Si uso un textarea estándar sin editor, esto funciona bien cols="120"
¿Cómo establecer cols en la función wp_editor?
Hay dos parámetros que puedes utilizar para cambiar el tamaño del editor de texto generado con wp_editor()
, aquí están:
$settings = array(
'editor_height' => 425, // En píxeles, tiene prioridad y no tiene valor por defecto
'textarea_rows' => 20, // No tiene efecto visible si editor_height está establecido, el valor por defecto es 20
);
- Si se proporciona
editor_height
, se utilizará su valor directo - De lo contrario,
textarea_rows
(o su valor por defecto de 20) se utilizará para calcular la altura correspondiente en píxeles
Es bueno saberlo:
Aquí hay algunos ejemplos del resultado de la conversión de textarea_rows
a píxeles (esto se hace en el lado del cliente):
- 0 a 3 => 100
- 4 => 113
- 5 => 133
- 10 => 230
- 15 => 328
- 20 => 425
- ...

$settings = array(
'tinymce' => array(
'width' => 200
)
);
Te da un editor TinyMCE con un ancho de 200px. Lo encontré aquí: http://www.tinymce.com/wiki.php/Configuration
Cuando lo probé, el color de fondo de mi TinyMCE cambió. Así que quizás tengas que ajustar eso.

No estoy seguro si incluso puedes establecer el número de columnas ("cols") en el array.
Pero una forma de lograr lo que deseas sería agregando una clase a tu wp_editor.
$settings = array(
'quicktags' => array('buttons' => 'em,strong,link',),
'quicktags' => true,
'tinymce' => true,
'textarea_rows' => 20,
'classes' => 'tuclase',
);
o cuando llamas al wp_editor:
<?php wp_editor( $content, $editor_id, $settings = array('editor_class'=>'tuclase') ); ?>
Luego simplemente establece el ancho en CSS:
.tuclase {
width: 400px !important; //agrega !important si tu estilo está siendo sobrescrito
}
