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.datalos 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 regresafalsedespué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
subscribelugar 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
subscribeviene el método? ¿Es parte de lawp.datafunción? No lo veo mencionado en los documentos.subscribees 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.datamodelo. 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_idytrigger_valuecombinar 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