El principal problema son las secuencias de comandos que faltan. Los guiones en cola _WP_Editors::enqueue_scripts()
nunca se imprimen. Lo mismo es cierto para _WP_Editors::editor_js()
.
Entonces debe hacerlo en su controlador de devolución de llamada AJAX. He escrito un complemento de demostración y lo puse en GitHub: T5 AJAX Editor .
Hay una clase llamada Ajax_Editor
. Su método render()
imprime el editor en solicitudes 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();
}
El orden exacto es importante, y no se olvide die()
al final. Lo que aún no funciona es la carga de medios. Recibo un error de JavaScript cuando intento incluir eso.
Tenga en cuenta que las llamadas print_footer_scripts();
le darán más de lo que esperaba: algunos complementos (Monitor de consultas, por ejemplo) registran sus scripts incluso para solicitudes AJAX, incluso si no los necesitan allí.