在定制器中排队 tinymce 编辑器
enqueue tinymce editor in customizer
我很难尝试让微型 mce 编辑器在 wordpress 定制器中工作。
看起来只是从我的 WP_Customize_Control 扩展中调用 "wp_editor" 不会触发自定义程序中 TinyMCE 脚本的加载。
我试过像这里的答案一样手动加载它们:https://wordpress.stackexchange.com/questions/175307/tinymce-is-not-defined-when-not-using-wp-editor
也尝试过 wp_enqueue_script('tiny-mce')
但无济于事。
这是我的渲染方法,没什么特别的:
public function render_content() {
?>
<label>
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
<?php
$settings = array(
'media_buttons' => false,
'quicktags' => false,
'teeny' => true
);
wp_editor($this->value(), $this->id, $settings );
?>
</label>
<?php
}
有什么正确的建议吗?
好的,找到一个解决方案,但在定制器中使用 wp_editor 意味着打开潘多拉魔盒。
在创建编辑器之前添加do_action('admin_print_footer_scripts');
:
do_action('admin_print_footer_scripts');
wp_editor($this->value(), $this->id, $settings );
将渲染 TinyMCE。但是,仍然存在的问题是:
- 富文本框中的更新会保存到相应的文本区域,但是 wp.customize 正在监视以执行 postMessage 的 "changed" 或 "keyup" 等事件不会被触发丰富的编辑器,但仅在直接更改文本区域时。
- 由于上述原因,"Save" 按钮将不会启用。
- textarea 上 "changed" 和 "keyup" 事件的人为触发未被 wp.customize 捕获,因此不会调用预览区域中的更新回调
- 一旦每几个自定义程序加载一次,tinymce 将不会完全呈现,可能是由于管理脚本的加载方式
因此,在深入研究这个主题之后,我意识到 wp_editor 尚未准备好可靠地用于帖子编辑以外的其他领域。
我成功了。请参阅我在 workdpress.stackexchange.
上的结论性代码示例的答案
p.s。我也求助于调用 do_action('admin_print_footer_scripts')
,这显然是一个肮脏的 hack,因为它在定制程序页面上包含了一堆其他不必要的脚本,但它确实在等待更优雅的解决方案..
我很难尝试让微型 mce 编辑器在 wordpress 定制器中工作。
看起来只是从我的 WP_Customize_Control 扩展中调用 "wp_editor" 不会触发自定义程序中 TinyMCE 脚本的加载。
我试过像这里的答案一样手动加载它们:https://wordpress.stackexchange.com/questions/175307/tinymce-is-not-defined-when-not-using-wp-editor
也尝试过 wp_enqueue_script('tiny-mce')
但无济于事。
这是我的渲染方法,没什么特别的:
public function render_content() {
?>
<label>
<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
<?php
$settings = array(
'media_buttons' => false,
'quicktags' => false,
'teeny' => true
);
wp_editor($this->value(), $this->id, $settings );
?>
</label>
<?php
}
有什么正确的建议吗?
好的,找到一个解决方案,但在定制器中使用 wp_editor 意味着打开潘多拉魔盒。
在创建编辑器之前添加do_action('admin_print_footer_scripts');
:
do_action('admin_print_footer_scripts');
wp_editor($this->value(), $this->id, $settings );
将渲染 TinyMCE。但是,仍然存在的问题是:
- 富文本框中的更新会保存到相应的文本区域,但是 wp.customize 正在监视以执行 postMessage 的 "changed" 或 "keyup" 等事件不会被触发丰富的编辑器,但仅在直接更改文本区域时。
- 由于上述原因,"Save" 按钮将不会启用。
- textarea 上 "changed" 和 "keyup" 事件的人为触发未被 wp.customize 捕获,因此不会调用预览区域中的更新回调
- 一旦每几个自定义程序加载一次,tinymce 将不会完全呈现,可能是由于管理脚本的加载方式
因此,在深入研究这个主题之后,我意识到 wp_editor 尚未准备好可靠地用于帖子编辑以外的其他领域。
我成功了。请参阅我在 workdpress.stackexchange.
上的结论性代码示例的答案p.s。我也求助于调用 do_action('admin_print_footer_scripts')
,这显然是一个肮脏的 hack,因为它在定制程序页面上包含了一堆其他不必要的脚本,但它确实在等待更优雅的解决方案..