Cómo cargar wp_editor a través de AJAX

16

¿Alguien sabe cómo cargar wp_editor a través de AJAX en WordPress?

Mi marca y el editor se están cargando correctamente, pero los controles del editor no se cargan correctamente, puede deberse a que Javascript no se está ejecutando en la llamada AJAX.

Cualquier ayuda sería apreciada.

    
pregunta user17108 16.07.2013 - 07:17

2 respuestas

6

El problema principal son los scripts que faltan. Los scripts encolados en _WP_Editors::enqueue_scripts() nunca se imprimen. Lo mismo es cierto para _WP_Editors::editor_js() .

Así que tienes que hacer eso en tu 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, no olvide el die() al final. Lo que no funciona aún es la carga de medios. Recibo un error de JavaScript cuando intento incluirlo.

Tenga en cuenta que llamar a print_footer_scripts(); le dará más de lo que esperaba: algunos complementos (por ejemplo, el Monitor de consultas) registran sus scripts incluso para las solicitudes de AJAX, incluso si no los necesitan allí.

    
respondido por el fuxia 20.01.2014 - 06:14
0

Después de luchar con él, encontré la solución de una línea que funciona, en la devolución de llamada agregar:

tinymce.execCommand( 'mceAddEditor', true, element.id );

No tengo idea de por qué no pude encontrar documentación dentro de Tinymce.

    
respondido por el Goran Jakovljevic 05.04.2016 - 09:04

Lea otras preguntas en las etiquetas