我想在WordPress中创建自定义小部件。为了更好的用户体验,我想在窗口小部件中插入一个最小的TinyMCE WYSIWYG编辑器。
我已经将WYSIWYG与wp_editor()函数集成在一起,但是当我输入一个值并按下保存按钮时,按钮消失,文本为白色(但仍然存在)。
在萤火虫中,列出了以下错误:
D.hasChildNodes不是函数(editor-template.js,第1行)
NS_ERROR_UNEXPECTED:(tiny_mce.js,第1行)
这是我到目前为止的代码:
表格功能:
public function form( $instance ) {
//$pages =
$settings = array(
'media_buttons' => false,
'tinymce' => array(
'theme_advanced_buttons1' => 'bold,italic,underline',
'theme_advanced_buttons2' => '',
'theme_advanced_buttons3' => ''
),
'textarea_name' => $this->get_field_name( 'description' )
);
if ( $instance ) {
$title = $instance[ 'title' ];
$page = $instance['page'];
$description = $instance['description'];
$image_uri = $instance['image_uri'];
} else {
$title = __( 'New title', 'wpb_widget_domain' );
$page = __( 'New Page', 'wpb_widget_domain' );
$image_uri = __( 'New Image', 'wpb_widget_domain' );
$description = __( 'New Description', 'wpb_widget_domain' );
}
?>
[some code that doesn't matter]
<p>
<label for="<?php echo $this->get_field_id( 'description' ); ?>"><?php _e( 'Description:' ); ?></label><br />
<?php wp_editor( $description, $this->get_field_id( 'description' ), $settings ) ?>
</p>
[some code that doesn't matter]
<?php
}
更新功能:
public function update( $new_instance, $old_instance ) {
var_dump($new_instance);
$instance = array();
$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
$instance['page'] = ( ! empty( $new_instance['page'] ) ) ? strip_tags( $new_instance['page'] ) : '';
$instance['image_uri'] = ( ! empty( $new_instance['image_uri'] ) ) ? strip_tags( $new_instance['image_uri'] ) : '';
$instance['description'] = ( ! empty( $new_instance['description'] ) ) ? strip_tags( $new_instance['description'] ) : '';
return $instance;
}
另一件可能很重要的事情: 当我转储$ _POST时,描述字段的值不会更新。
任何?
提前致谢。 HS。
答案 0 :(得分:0)
我认为这是一个拙劣的核心错误,当调用编辑器上的方法remove()
时会发生这种错误。您使用的是哪种版本?