0
20

SHARE

Criando Campos Dinâmicos e InspectorControls no Gutenberg

Campos Dinâmicos e InspectorControls no Gutenberg: Deixe Seu Bloco Interativo

Aprenda a criar blocos Gutenberg com campos dinâmicos usando attributes e InspectorControls. Torne seu bloco interativo com React e WordPress moderno

E aí, dev! No Dia 7, criamos nosso primeiro bloco personalizado com Gutenberg + React.

Mas até agora, ele era fixo: um HTML estático.

Hoje, no Dia 8, vamos dar vida a ele:

✔️ Criando campos editáveis diretamente no editor
✔️ Salvando essas mudanças no conteúdo do post
✔️ E organizando tudo de forma limpa e clara no nosso plugin modular


🎯 O que vamos fazer:

  • Adicionar um campo de texto dinâmico
  • Exibir esse valor no editor e no frontend
  • Usar o InspectorControls para editar o valor pela barra lateral

📦 Estrutura do nosso bloco hello:

Continuamos com:

/blocks/hello/
  ├── block.json
  ├── index.js
  ├── edit.js
  ├── save.js
  └── build/hello.js (compilado via webpack)

1️⃣ Definindo atributos no block.json

Vamos adicionar o campo mensagem:

"attributes": {
  "mensagem": {
    "type": "string",
    "default": "Olá do WP24Horas!"
  }
}

👉 Agora nosso bloco entende que ele terá um atributo chamado mensagem, que é uma string.


2️⃣ Editando o bloco no editor (edit.js)

Aqui vamos usar o hook useBlockProps(), InspectorControls, TextControl e setAttributes para atualizar o valor:

import { __ } from '@wordpress/i18n';
import { useBlockProps, InspectorControls } from '@wordpress/block-editor';
import { PanelBody, TextControl } from '@wordpress/components';

export default function Edit({ attributes, setAttributes }) {
  const { mensagem } = attributes;

  return (
    <>
      <InspectorControls>
        <PanelBody title="Configurações">
          <TextControl
            label="Mensagem"
            value={mensagem}
            onChange={(value) => setAttributes({ mensagem: value })}
          />
        </PanelBody>
      </InspectorControls>

      <div {...useBlockProps()}>
        <p>{ mensagem }</p>
      </div>
    </>
  );
}

3️⃣ Salvando o conteúdo (save.js)

Aqui usamos attributes.mensagem:

import { useBlockProps } from '@wordpress/block-editor';

export default function save({ attributes }) {
  return (
    <div {...useBlockProps.save()}>
      <p>{ attributes.mensagem }</p>
    </div>
  );
}

4️⃣ Compilar com Webpack

npm run build

5️⃣ Atualizar no editor

  • Acesse o editor de post/página
  • Adicione o bloco “Bloco Hello WP24H”
  • Edite a mensagem no painel lateral
  • Salve e veja o conteúdo renderizado corretamente no front

💡 Bônus: Validação simples

Você pode usar default, type, source, selector e muito mais nos atributos.

Exemplo avançado:

"attributes": {
  "mensagem": {
    "type": "string",
    "source": "html",
    "selector": "p"
  }
}

Isso faz com que o Gutenberg salve o conteúdo do elemento <p> diretamente no atributo.


✅ Conclusão do Dia 8

Hoje você:

✔️ Entendeu como adicionar campos dinâmicos ao bloco
✔️ Aprendeu a usar attributes, setAttributes e InspectorControls
✔️ Viu como tudo se conecta no editor e no front


💬 Curtiu o conteúdo?

👉 Quer aprender a fundo como construir blocos avançados com campos personalizados, repetições e integração com metadados?

Comenta aqui suas dúvidas 👇

Não perca mais nenhuma atualização aqui!

Ative as Notificações!

Clique aqui e, em seguida, clique em Permitir na caixa que aparecerá na parte superior da janela, próximo à barra de endereços.

Torne-se um Assinante e Eleve seu Conhecimento do WordPress!

Acesso Exclusivo, Suporte Especializado e Muito Mais.

Se você está aproveitando nosso conteúdo gratuito, vai adorar os benefícios exclusivos que oferecemos aos nossos assinantes! Ao se tornar um assinante do WP24Horas, você terá acesso a:

Não perca a oportunidade de maximizar seu potencial no WordPress. Clique no botão abaixo para se tornar um assinante e leve suas habilidades ao próximo nível!

Não perca mais nenhuma atualização aqui!

Tabela de Conteúdo
PUBLICIDADE
Últimos Posts
Adicionando Imagem Ícone e Classe CSS Personalizada em Bloco Gutenberg

Ícones, Imagens e Classes Personalizadas no Gutenberg

Atributos Visuais e Estilo Dinâmico com Gutenberg

Cor, Alinhamento e Estilo Dinâmico com Gutenberg + React

Como Estilizar Blocos Gutenberg com CSS e Classes Dinâmicas

Estilizando Blocos Gutenberg com CSS e Classes Dinâmicas

Criando Blocos Personalizados com Gutenberg e React

Criando Blocos Personalizados com Gutenberg e React

Como Criar Comandos WP-CLI Personalizados para Plugins

Criando Comandos WP-CLI Personalizados para Plugins WordPress

Como Funciona o apply_filters no WordPress

Como Funciona o apply_filters() no WordPress (com Exemplos Práticos)

Você precisa estar logado para ver esta informação.

Torne-se um Assinante e Eleve seu Conhecimento do WordPress!

Acesso Exclusivo, Suporte Especializado e Muito Mais.

Se você está aproveitando nosso conteúdo gratuito, vai adorar os benefícios exclusivos que oferecemos aos nossos assinantes! 

Não perca a oportunidade de maximizar seu potencial no WordPress. Clique no botão abaixo para se tornar um assinante e leve suas habilidades ao próximo nível!