如何通过AJAX加载wp_EDITOR

时间:2013-07-16 作者:user17108

有人知道如何在WordPress中通过AJAX加载wp\\U编辑器吗?

我的标记和编辑器加载正确,但编辑器控件加载不正确,这可能是因为Javascript没有在AJAX调用中运行。

任何帮助都将不胜感激。

2 个回复
SO网友:fuxia

主要问题是缺少脚本。脚本已排入队列_WP_Editors::enqueue_scripts() 从不打印。这同样适用于_WP_Editors::editor_js().

因此,必须在AJAX回调处理程序中执行此操作。我已经编写了一个演示插件,并将其放在GitHub上:T5 AJAX Editor.

有一个名为Ajax_Editor. Its方法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(); 将给您带来比您预期的更多:一些插件(例如查询监视器)甚至为AJAX请求注册其脚本,即使它们在那里不需要它们。

SO网友:Goran Jakovljevic

在与之斗争之后,在callback add(回调添加)中找到了一个可行的单行解决方案:

tinymce.execCommand( \'mceAddEditor\', true, element.id );
不知道为什么我在tinymce里面找不到文档。

结束

相关推荐

检查插件中是否存在带有AJAX的前端电子邮件地址

我正在努力想办法解决这个问题。我在这里遵循了针对AJAX的wordpress codex:http://codex.wordpress.org/AJAX_in_Plugins我一直返回的是0,我从来没有得到1。知道为什么吗?我的代码如下。PHP:add_action(\'wp_enqueue_scripts\', \'live_validation\' ); add_action(\'wp_ajax_validate_email\', \'validate_email_input\');