Blog

🚀 Automatize suas tarefas WordPress com o novo Gato GraphQL v2.1

Leonardo Losoviz
Por Leonardo Losoviz ·

Temos o prazer de anunciar que o Gato GraphQL v2.1 foi lançado!

Com esta nova versão e as extensões PRO, você pode usar o GraphQL como Automatizador, aproveitando queries persistidas GraphQL para automatizar tarefas relacionadas a dados no seu site WordPress.

Abaixo estão todas as mudanças adicionadas ao v2.1 (uma versão resumida está disponível nas notas de lançamento no GitHub).

Suporte para fornecer a configuração de schema ao invocar o servidor GraphQL interno

Agora podemos especificar qual configuração de schema aplicar ao executar uma query via servidor GraphQL interno (ou seja, diretamente dentro da aplicação PHP, sem passar por um endpoint).

Este novo recurso aprimora a extensão Internal GraphQL Server: ela agora aceita um parâmetro $schemaConfigurationIDOrSlug nos métodos executeQuery e executeQueryInFile da classe GraphQLServer, e já extrai a configuração de schema usada pela query persistida em executePersistedQuery:

class GraphQLServer {
  
  public static function executeQuery(
    string $query,
    array $variables = [],
    ?string $operationName = null,
+   // Accept parameter 
+   int|string|null $schemaConfigurationIDOrSlug = null,
  ): Response {
    // ...
  }
 
  public static function executeQueryInFile(
    string $file,
    array $variables = [],
    ?string $operationName = null,
+   // Accept parameter 
+   int|string|null $schemaConfigurationIDOrSlug = null,
  ): Response {
    // ...
  }
 
  public static function executePersistedQuery(
    WP_Post|string|int $persistedQuery,
    array $variables = [],
    ?string $operationName = null,
+   // Schema Configuration is taken directly from the Persisted Query
  ): Response {
    // ...
  }

GraphQL como Automatizador [PRO]

O recurso acima também fornece a base para aprimorar a extensão Automation.

A extensão Automation agora oferece uma interface de usuário do tipo "automatizador" (diretamente pelo editor do WordPress) chamada Automation Configurator. O gatilho da automação é qualquer action hook do WordPress, e a ação é a execução de uma query persistida GraphQL.

Editor de regras de automação
Editor de regras de automação

Por exemplo, ao criar um novo post, a regra de automação Add comments block to new post (executando a query persistida com o mesmo nome) verifica se o bloco core/comments está presente e, caso não esteja, o adiciona ao final do post:

Inserção automática do bloco de comentários em novos posts com status 'draft'
Inserção automática do bloco de comentários em novos posts com status 'draft'

Estas são algumas formas de usar o automatizador:

  • Criar (e otimizar) uma imagem destacada para novos posts usando IA
  • Adicionar um bloco obrigatório ao post quando publicado
  • Substituir http por https em todas as fontes de imagens e links quando um post é atualizado
  • Enviar um e-mail ao administrador quando houver um novo post
  • Enviar um e-mail ao usuário cujo comentário recebeu uma nova resposta
  • [Multisite] Traduzir um novo post para diferentes idiomas e adicionar os posts traduzidos a cada site
  • Executar uma ação em um serviço externo (ex.: compartilhar automaticamente novos posts no Facebook)

Como você pode compor as queries persistidas GraphQL e as regras de automação diretamente no wp-admin, não demora nada para criar um pipeline de automação totalmente personalizado, adaptado às suas necessidades.

E como não há restrições nos inputs (a query GraphQL pode interagir com todos os dados do WordPress e conectar-se a qualquer serviço externo via cliente HTTP), você deve ser capaz de atender 100% dos seus requisitos.

(Plugins de automação geralmente satisfazem 95% das nossas necessidades, pois frequentemente encontramos que algum input necessário não foi mapeado.)

Diversas regras de automação já são criadas pelo plugin (com status draft, portanto devem ser atualizadas para publish para entrar em vigor). Você já pode usá-las e consultá-las como exemplos para criar suas próprias automações (esta lista será expandida em versões futuras):

  • Add comments block to new post
  • Insert block in new post
  • Send notification email to admin when there is a new post
  • Generate a post's featured image using AI (and optimize it) if a new post has none
Regras de automação
Regras de automação

Query persistida predefinida "Insert block in post"

A query GraphQL persistida recém-adicionada "Insert block in post" permite injetar um bloco em um post. Ela identifica o n-ésimo bloco de um tipo específico (wp:paragraph por padrão) em um post e posiciona o conteúdo HTML do bloco personalizado fornecido logo após ele.

Usada com a extensão Automation, esta query persistida pode ser utilizada para injetar automaticamente blocos obrigatórios em um post recém-publicado (ex.: um bloco de CTA para promover uma campanha em andamento).

Melhorias

  • Se a inicialização do container de serviços a partir do cache falhar, retornar para inicialização do objeto PHP a partir da memória (#2638)
  • Atribuir operationName único a todas as queries persistidas predefinidas (#2644)
  • Mensagem de erro aprimorada ao buscar blocos de um post cujo conteúdo apresenta erros
  • Documentação completa para a extensão Automation (#2651)
  • Na query persistida predefinida "Generate a post's featured image using AI and optimize it", executar a lógica somente se o título do post não estiver vazio (#ec931dd)

Corrigido

  • Bug no componente JS multi-controle usado pelas extensões (Access Control, Cache Control e Field Deprecation) que exibia "undefined" no bloco na configuração de schema (#2639)
  • Bug nas substituições via regex nas queries persistidas predefinidas (#2649)
  • Evitar reinstalação dos dados de configuração do plugin ao desativar/reativar o plugin (#2641)
  • Tratamento de erro ao passar WP_Post como variável GraphQL para o servidor GraphQL interno (#2652)

Assine nossa newsletter

Fique por dentro de todas as atualizações do Gato GraphQL.