Configurador de Automatización
Ejecuta automáticamente una Persisted Query de GraphQL cuando ocurre algún evento en el sitio.
El módulo Configurador de Automatización proporciona una interfaz de usuario "automatizadora" para crear automatizaciones mediante el editor de WordPress.
El disparador de automatización es cualquier action hook de WordPress, y la acción es la ejecución de una persisted query de GraphQL.
Se proporciona un Custom Post Type "Reglas de Automatización" para crear automatizaciones. Al crear una nueva entrada, debemos proporcionar la configuración para:
- Disparador(es) de automatización
- Acción de automatización

Acción de automatización
La acción de automatización indica qué persisted query de GraphQL se ejecutará.
Configura este elemento con los siguientes campos:
Persisted Query: Selecciona qué persisted query de GraphQL ejecutar (de entre todas las que tienen estado publish o private).
Variables estáticas de GraphQL: Proporciona una cadena JSON con valores para las variables de GraphQL en la persisted query. Estos son valores estáticos.
Por ejemplo:
{
"emailSubject": "New post on the site"
}Estos valores son sobrescritos por las variables "dinámicas" de GraphQL (consulta Disparador(es) de automatización más abajo).
Nombre de la operación (opcional): Si la persisted query contiene más de una operación, puedes indicar cuál ejecutar (por defecto, es la última).
Ejecutar como usuario (opcional): Ejecuta la persisted query de GraphQL iniciando sesión como un usuario específico, proporcionando el slug del usuario.

Disparador(es) de automatización
Un disparador de automatización indica qué action hook de WordPress disparará la ejecución de la Persisted Query. Podemos proporcionar más de uno (por ejemplo: para reaccionar solo a la edición de una entrada o página, podemos proporcionar los hooks edit_post_post y edit_post_page).
Configura este elemento con los siguientes campos:
Nombre del hook: El nombre del action hook de WordPress.
Variables dinámicas de GraphQL: Proporciona una cadena JSON que mapea las variables de GraphQL a los argumentos proporcionados a la función del hook. Estos valores dinámicos se proporcionarán entonces a la consulta en tiempo de ejecución.
El diccionario JSON debe contener el nombre de la variable de GraphQL como clave, y la posición del argumento en el action hook como valor.
Por ejemplo, el hook draft_post (de las transiciones de estado de entrada) proporciona el $post_id como primer argumento. Entonces, el siguiente JSON indica que la variable de GraphQL $postID recibirá el valor de $post_id pasado al hook:
{
"postID": 1
}(En este ejemplo, 1 significa "valor del 1er argumento de draft_post".)
Si se utiliza la misma clave para las variables "dinámicas" y "estáticas" de GraphQL (consulta Acción de automatización más arriba), entonces los valores dinámicos tienen prioridad.

Mapeo de hooks de WordPress
Hay hooks de WordPress que no pueden usarse directamente en el Configurador de Automatización, porque proporcionan un objeto PHP mediante el hook, que no puede introducirse como una variable de GraphQL.
Varios de estos hooks han sido mapeados por Gato GraphQL, disparando un nuevo hook con el prefijo gatographql: seguido del mismo nombre del hook, y pasando el ID del objeto correspondiente como variable, que puede introducirse como una variable de GraphQL.
Por ejemplo, el hook de WordPress draft_to_publish pasa el $post como variable (de tipo WP_Post). Gato GraphQL mapea este hook como gatographql:draft_to_publish y pasa el $postId (de tipo int) como variable.
La siguiente tabla enumera los hooks de WordPress mapeados:
| Hook de WordPress | Hook mapeado por Gato GraphQL |
|---|---|
{$old_status}_to_{$new_status} (pasando WP_Post $post) | gatographql:{$old_status}_to_{$new_status} (pasando int $postId, string $postType) |
Además, Gato GraphQL vuelve a disparar varios hooks de WordPress con información adicional en el nombre del hook, para facilitar la captura y automatización de eventos específicos.
Por ejemplo, los hooks que crean, actualizan y eliminan valores meta se disparan conteniendo la clave meta como parte del nombre del hook. Así, una automatización puede dispararse cuando se asigna una imagen destacada a una entrada, en el hook gatographql:added_post_meta:_thumbnail_id.
Estos son los hooks adicionales de Gato GraphQL:
| Hook de WordPress origen | Hook de Gato GraphQL disparado |
|---|---|
{$old_status}_to_{$new_status}(Pasando WP_Post $post) | gatographql:any_to_{$new_status}gatographql:{$old_status}_to_anygatographql:{$old_status}_to_{$new_status}:{$post_type}gatographql:any_to_{$new_status}:{$post_type}gatographql:{$old_status}_to_any:{$post_type}(Todos pasando int $postId, string $postType) |
created_term | gatographql:created_term:{$taxonomy} |
set_object_terms | gatographql:set_object_terms:{$taxonomy}gatographql:updated_object_terms:{$taxonomy} (Cuando hay una diferencia entre los términos antiguos y nuevos) |
added_post_meta | gatographql:added_post_meta:{$meta_key}gatographql:added_post_meta:{$post_type}:{$meta_key} (También pasando string $post_type como 5º parámetro) |
updated_post_meta | gatographql:updated_post_meta:{$meta_key}gatographql:updated_post_meta:{$post_type}:{$meta_key} (También pasando string $post_type como 5º parámetro) |
deleted_post_meta | gatographql:deleted_post_meta:{$meta_key}gatographql:deleted_post_meta:{$post_type}:{$meta_key} (También pasando string $post_type como 5º parámetro) |
added_term_meta | gatographql:added_term_meta:{$meta_key}gatographql:added_term_meta:{$taxonomy}:{$meta_key} (También pasando string $taxonomy como 5º parámetro) |
updated_term_meta | gatographql:updated_term_meta:{$meta_key}gatographql:updated_term_meta:{$taxonomy}:{$meta_key} (También pasando string $taxonomy como 5º parámetro) |
deleted_term_meta | gatographql:deleted_term_meta:{$meta_key}gatographql:deleted_term_meta:{$taxonomy}:{$meta_key} (También pasando string $taxonomy como 5º parámetro) |
Depurando problemas
Si la automatización no se ha ejecutado, puede haber un error con la configuración de la automatización o con la ejecución de la persisted query.
Registros de ejecución
Consulta Solución de problemas para más detalles.
Registros de errores
Todos los problemas de configuración (como una cadena JSON malformada para las variables de GraphQL, o apuntar a una persisted query que ha sido eliminada) y los errores de ejecución (como excepciones lanzadas, o entradas errors en la consulta GraphQL) se envían al error_log de la función PHP, por lo que se imprimen en el registro de errores de WordPress.
Estos registros de errores llevan el prefijo [Gato GraphQL].
Ejemplos
Estos son algunos ejemplos de cómo podemos usarlo:
- Crear una imagen destacada para nuevas entradas usando IA
- Añadir un bloque obligatorio a la entrada cuando se publica
- Reemplazar
httpporhttpsen todas las fuentes y enlaces de imágenes cuando se actualiza una entrada - Enviar un correo electrónico al administrador cuando hay una nueva entrada
- Enviar un correo electrónico al usuario cuyo comentario tiene una nueva respuesta
- [Multisitio] Traducir una nueva entrada a diferentes idiomas y añadir las entradas traducidas a cada sitio
- Ejecutar una acción en un servicio externo (por ejemplo: compartir automáticamente nuevas entradas en Facebook)
Por ejemplo, al crear una nueva entrada con estado draft, la regla de automatización predefinida Añadir bloque de comentarios a nueva entrada comprueba si el bloque core/comments está presente y, si no, lo añade al final de la entrada:
