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