WP24Horas
♙ ◴
PARCEIRO RECOMENDADO Vai colocar um WordPress no ar? Comece com uma hospedagem que acompanha o seu projeto. Conhecer a HostGator link patrocinado

Desenvolvimento e Programação

Inserindo Blocos via Código ou Shortcodes

Por Asllan Maciel3 min de leitura
Como Inserir Blocos Gutenberg via Código, Shortcodes ou PHP
Esta entrada é parte 18 de 20 na série WordPress Extremo: Gutenberg + React + Blocos Customizados

WordPress Extremo: Gutenberg + React + Blocos Customizados

Como Criar um Bloco WordPress com Filtro por Múltiplas Categorias

Bloco de Posts com Filtro por Múltiplas Categorias

Como Filtrar Posts por Categoria em um Bloco Gutenberg

Filtrando Posts por Categoria no Editor do Bloco

Como Criar um Bloco Dinâmico no WordPress com Renderização PHP

Bloco Dinâmico com Renderização no Servidor

Conectando Blocos Gutenberg à REST API

Conectando Blocos com a REST API do WordPress

Componentes Reutilizáveis e Campos Compostos no Gutenberg

Componentes Reutilizáveis e Atributos Compostos em Blocos Gutenberg

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 Campos Dinâmicos e InspectorControls no Gutenberg

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

Criando Blocos Personalizados com Gutenberg e React

Criando Blocos Personalizados com Gutenberg e React

Como Salvar Dados Personalizados no WordPress Usando Blocos Gutenberg e REST API

Salvando Dados Personalizados no Backend via REST API

Blocos Reutilizáveis com InnerBlocks no Gutenberg

Blocos Reutilizáveis com InnerBlocks no Gutenberg

Comunicação entre Blocos com Block Context API no WordPress

Comunicação entre Blocos com Block Context API no WordPress

Como Criar Blocos Condicionais no Gutenberg com Atributos

Como Criar Blocos Condicionais no Gutenberg com Atributos

Internacionalização de Blocos Gutenberg (i18n)

Internationalização de Blocos Gutenberg (i18n)

Como Carregar Scripts e Estilos no WordPress Apenas Quando Necessário

Scripts e Estilos Condicionais: Carregando apenas quando necessário

Uso de Slots e Templates Personalizados

Como Inserir Blocos Gutenberg via Código, Shortcodes ou PHP

Inserindo Blocos via Código ou Shortcodes

Como Validar e Testar Blocos Gutenberg

Testes e Validação de Blocos com @wordpress/scripts

Como Distribuir Seus Blocos Gutenberg em Plugins ou no GitHub

Distribuindo Seus Blocos: Plugins, Repositório e GitHub

Fala, dev! 👋

Hoje vamos explorar formas não convencionais, mas super úteis de inserir blocos Gutenberg via PHP, seja dentro de um template, via do_shortcode() ou até mesmo dinamicamente com render_block().

Isso é essencial quando você quer:

  • Reutilizar blocos dentro de temas personalizados
  • Gerar conteúdo dinâmico via backend
  • Exibir blocos fora do editor visual (como no functions.php, single.php ou via um plugin)

💡 Três formas principais de inserir blocos via código

🔹 1. render_block(): bloco como array + HTML renderizado

$block_content = render_block([
    'blockName' => 'core/paragraph',
    'attrs' => [
        'content' => 'Esse conteúdo foi inserido via render_block()!'
    ],
    'innerHTML' => '<p>Esse conteúdo foi inserido via render_block()!</p>',
    'innerContent' => ['<p>Esse conteúdo foi inserido via render_block()!</p>']
]);

echo $block_content;

Ideal para inserir blocos programaticamente com controle total.


🔹 2. do_blocks() + string com conteúdo em bloco

$gutenberg_markup = '<!-- wp:core/heading {"level":3} --><h3>Esse bloco foi processado com do_blocks()</h3><!-- /wp:core/heading -->';

echo do_blocks($gutenberg_markup);

Essa função processa o conteúdo como se estivesse no editor. Funciona bem para strings armazenadas no banco de dados ou geradas por shortcode.


🔹 3. Criar shortcode que renderiza um bloco

add_shortcode('meu_bloco_dinamico', function () {
    return do_blocks('<!-- wp:core/paragraph --><p>Esse bloco veio de um shortcode!</p><!-- /wp:core/paragraph -->');
});

Agora você pode usar [meu_bloco_dinamico] em qualquer lugar, e o bloco aparecerá processado corretamente.


🧱 Exemplo com bloco customizado

Se você criou um bloco wp24h/alert-box, pode renderizá-lo assim:

echo render_block([
    'blockName' => 'wp24h/alert-box',
    'attrs' => [
        'type' => 'error',
    ],
    'innerHTML' => '<div class="alert-box alert-error">Erro renderizado via render_block</div>',
    'innerContent' => ['<div class="alert-box alert-error">Erro renderizado via render_block</div>']
]);

Você pode incluir lógica para renderizar atributos, tipo do alerta, etc.


⚠️ Cuidados ao usar blocos por código

  • Alguns blocos não funcionam fora do contexto do editor (ex: InnerBlocks, alguns componentes JS).
  • Evite duplicação de estilos: se o bloco exige CSS, certifique-se de que ele está sendo enfileirado com has_block() ou wp_enqueue_style().
  • Use render_callback para dinamismo completo, especialmente em blocos criados para esse fim.

🧪 Resultado

Você poderá usar blocos do editor diretamente no frontend, por meio de templates, funções ou shortcodes — com controle total sobre o que, onde e como exibir.

WordPress Extremo: Gutenberg + React + Blocos Customizados

Uso de Slots e Templates Personalizados Testes e Validação de Blocos com @wordpress/scripts

Sobre o autor

Asllan Maciel

Asllan Maciel, Fundador do WP24Horas, Consultor de Marketing Digital e amante do Empreendedorismo Digital. Tem um caso de amor com o WordPress.