Por lo tanto, tengo un metabox que quiero activar Javascript cuando se guarda una publicación (para actualizar la página en este caso de uso).
En Classic Editor, esto se puede hacer a través de una simple redirección conectada a save_post
(con alta prioridad)
Pero dado que Gutenberg convierte el proceso de guardado de metaboxes existentes en llamadas AJAX individuales ahora, debe ser javascript, entonces, ¿cómo puedo:
¿Escucha un evento donde todos los procesos de guardado están completos y luego activa el javascript? Si es así, ¿cómo se llama este evento? ¿Hay alguna referencia a estos eventos en alguna parte todavía? O
Activa JavaScript en el proceso AJAX de guardado de metabox, que luego puede verificar el estado del proceso de guardado de la página principal antes de continuar.
fuente
wp.data
los almacenes de datoswp.data.select('core/editor').isSavingPost()
... este tipo de acceso no está documentado en ningún lugar que pueda ver ... y también parece poco confiable, ya que regresafalse
después de que la publicación se guarda por primera vez (antes de que no esté definida) si el editor todavía está guardando o no. facepalmRespuestas:
No estoy seguro de si hay una mejor manera, pero estoy escuchando en
subscribe
lugar de agregar un detector de eventos al botón:Documentos oficiales de los datos del Editor de publicaciones: https://wordpress.org/gutenberg/handbook/designers-developers/developers/data/data-core-editor/
fuente
subscribe
viene el método? ¿Es parte de lawp.data
función? No lo veo mencionado en los documentos.subscribe
es un método del módulo wp.data . Abra la consola cuando edite una publicación con Gutenberg y ejecútelawp.data
. Esto enumera todos los métodos de módulos de datos disponibles.wp.data
modelo. vuelve a PHP (y editor clásico) para mí.Bien, entonces una solución mucho más hacky de la que quería, pero funcionó ...
Aquí hay una forma ligeramente simplificada y abstracta de hacerlo desde mi código, en caso de que alguien necesite hacer lo mismo (como estoy seguro de que más complementos lo harán en el futuro cercano).
... solo necesita cambiar
metabox_input_id
ytrigger_value
combinar según sea necesario. :-)fuente
Necesita recopilar la función de cancelación de suscripción de suscribirse y llamar para evitar llamadas de tiempo múltiple.
fuente