wp_editor in widget breaks after save (no buttons and visual tab broken)
My goal is to get wp_editor working in a simple widget which the admin can use to add text content on an admin options page.
Here we go in wp-admin/widgets.php everything looks sooo good right.
When we try to save... Oh no..... Buttons are gone and the Visual tab no longer works
When I look at the HTML it appears as though after updating TinyMCE just decides it doesn't need to load any buttons... Any ideas?
Edit: here's the source for the plugin I wrote that's throwing this error
add_action('widgets_init', 'string_example_name_init');
function string_example_name_init()
{
register_widget('string_example_name');
}
class string_example_name extends WP_Widget
{
public function __construct()
{
$widget_details = array(
'classname' = 'string_example_name',
'description' = 'String Example Name'
);
parent::__construct('string_example_name', 'String Example Name', $widget_details);
}
public function form($instance)
{
$textcontent = '';
if( !empty( $instance['textcontent'] ) ) {
$textcontent = $instance['textcontent'];
}
?
div class="string-arena-gods" id="texxxt"
?php
$rand = rand( 0, 999 );
$ed_id = $this-get_field_id( 'wp_editor_' . $rand );
$ed_name = $this-get_field_name( 'wp_editor_' . $rand );
printf(
'input type="hidden" id="%s" name="%s" value="%d" /',
$this-get_field_id( 'the_random_number' ),
$this-get_field_name( 'the_random_number' ),
$rand
);
$content = 'Hello World!';
$editor_id = $ed_id;
$settings = array(
'media_buttons' = false,
'textarea_rows' = 3,
'textarea_name' = $ed_name,
'teeny' = true,
);
wp_editor( $content, $editor_id, $settings );
?
/div
div class='mfc-text'
/div
?php
echo $args['after_widget'];
}
public function update( $new_instance, $old_instance ) {
$rand = (int) $new_instance['the_random_number'];
$editor_content = $new_instance[ 'wp_editor_' . $rand ];
$new_instance['wp_editor_' . $rand] = $editor_content;
return $new_instance;
}
public function widget( $args, $instance ) {
extract( $args );
$textcontent = apply_filters( 'textcontent', $instance['textcontent'] );
?
div class="string widget flex"
?php
?
/div
?php
}
}