Answers:
主要问题是缺少脚本。入队的脚本_WP_Editors::enqueue_scripts()
从不打印。的情况也是如此_WP_Editors::editor_js()
。
因此,您必须在AJAX回调处理程序中执行此操作。我已经编写了一个演示插件,并将其放在GitHub:T5 AJAX Editor上。
有一个名为的课程Ajax_Editor
。它的方法render()
在AJAX请求上打印编辑器。
public function render()
{
if ( ! $this->validator->is_valid( TRUE ) )
die( 'nope' );
wp_editor( $this->data->get(), $this->editor_id, $this->settings );
\_WP_Editors::enqueue_scripts();
print_footer_scripts();
\_WP_Editors::editor_js();
die();
}
确切的顺序很重要,die()
最后不要忘了。尚无法上传媒体。当我尝试将其包含在内时,我收到一个JavaScript错误。
请注意,调用print_footer_scripts();
将给您带来超出预期的效果:某些插件(例如Query Monitor)即使对于AJAX请求也注册其脚本,即使它们在那里不需要它们。
wp.editor.initialize
:wordpress.stackexchange.com/a/274608/76440
经过努力,找到了一种可行的解决方案,在回调中添加:
tinymce.execCommand( 'mceAddEditor', true, element.id );
不知道为什么我无法在tinymce中找到文档。