---
title: "Páginas dinâmicas com Crocoblock: Guia completo em 5 passos"
description: "Páginas dinâmicas com Crocoblock são páginas que o WordPress monta sozinho a partir de um banco de registros, em vez de você construir cada uma à mão."
url: https://full.services/paginas-dinamicas-com-crocoblock-no-elementor/
date: 2026-06-28
author: "Clayton Margiotti"
---

# Páginas dinâmicas com Crocoblock: Guia completo em 5 passos

**Páginas dinâmicas com Crocoblock** nascem de um custom post type alimentando um Listing Grid no Elementor, sem duplicar layout. Segundo a [W3Techs](https://w3techs.com/technologies/details/cm-wordpress) (2026), o WordPress roda 41,5% de todos os sites. Um único template renderiza centenas de registros via Dynamic Field. Modele o dado antes de desenhar a página.

Páginas dinâmicas com Crocoblock são páginas que o WordPress monta sozinho a partir de um banco de registros, em vez de você construir cada uma à mão no Elementor. Você desenha um template uma vez e o JetEngine repete aquele layout para cada imóvel, profissional ou produto cadastrado. A lógica é simples: o dado mora num custom post type, o template lê esse dado com o widget Dynamic Field e o Listing Grid lista tudo numa grade filtrável. Quem mantém um [acervo de conteúdos de Elementor da FULL](https://full.services/elementor/) sabe que esse é o ponto onde o site para de escalar no braço e passa a escalar por estrutura.

---

## Primeiros passos: O que torna uma página dinâmica

Uma página dinâmica troca conteúdo fixo por campos que mudam conforme o registro: em vez de 200 páginas estáticas, você mantém 1 template e 200 entradas no banco. Em sites com centenas de itens, isso corta a manutenção de horas para minutos, porque corrigir o template vale para todos os registros de uma vez.

O JetEngine, plugin central do Crocoblock, entrega quatro peças que conversam entre si: custom post type, meta fields, Dynamic Field e Listing Grid. A tabela abaixo mostra a função de cada uma e um exemplo de projeto onde ela aparece.

<table id="pecas-paginas-dinamicas-crocoblock">
  <caption>Páginas dinâmicas com Crocoblock: peça, função e exemplo de uso</caption>
  <thead>
    <tr>
      <th scope="col">Peça do JetEngine</th>
      <th scope="col">Função técnica</th>
      <th scope="col">Exemplo de projeto</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">Custom post type</th>
      <td>Cria o tipo de registro (imóvel, médico, produto) no banco.</td>
      <td>Diretório de profissionais</td>
    </tr>
    <tr>
      <th scope="row">Meta fields</th>
      <td>Adiciona atributos ao registro: preço, área, telefone, cidade.</td>
      <td>Catálogo de imóveis</td>
    </tr>
    <tr>
      <th scope="row">Dynamic Field</th>
      <td>Widget que puxa um atributo do registro para dentro do template.</td>
      <td>Ficha de produto</td>
    </tr>
    <tr>
      <th scope="row">Listing Grid</th>
      <td>Renderiza vários registros em grade, com filtros opcionais.</td>
      <td>Página de busca do diretório</td>
    </tr>
  </tbody>
</table>

A diferença entre montar isso bem ou penar com a tela depende de uma decisão tomada antes do design. Vale a leitura de quando o ecossistema compensa em [vale a pena usar o Crocoblock com o Elementor](https://full.services/crocoblock-vale-a-pena-veja-como-usar-com-elementor/) antes de cadastrar o primeiro registro.

---

## Passo a passo: Criar páginas dinâmicas com Crocoblock no Elementor

A montagem de páginas dinâmicas com Crocoblock segue cinco passos em ordem fixa: criar o tipo de registro, descrever seus campos, cadastrar dados, desenhar o template e listar tudo numa grade. Pular a etapa de modelagem é o erro número um, segundo a documentação oficial do JetEngine, o [Listing Grid](https://crocoblock.com/knowledge-base/features/listing-grid-widget-overview/) só exibe meta fields que existam no post type apontado, então a estrutura precede o desenho. Os cinco passos abaixo valem para qualquer projeto, seja um diretório, uma imobiliária ou um catálogo.

### Passo 1: Crie o custom post type no JetEngine

O custom post type é o ponto de partida de todas as páginas dinâmicas com Crocoblock: em JetEngine > Post Types você define o nome (ex: "Imóveis"), o slug e marca a opção "Has archive" se quiser uma página de arquivo nativa. É o [custom post type](https://full.services/glossario/custom-post-type/) que registra o tipo no banco. Esse passo leva menos de dois minutos e dispensa código. Marcar "Has archive" desde o início evita o problema mais comum de grade vazia, porque o Listing Grid de arquivo precisa de um arquivo registrado para apontar. Defina também os suportes (título, editor, thumbnail) conforme o que cada card vai exibir depois.

### Passo 2: Descreva os meta fields do registro

Os meta fields são os atributos que diferenciam um registro do outro: preço, metragem, cidade, telefone ou categoria. Em JetEngine > Meta Boxes você cria um Meta Box, associa ao custom post type e adiciona cada campo com um tipo correto, número para preço, texto para endereço, mídia para galeria. O tipo do campo importa: um preço salvo como texto não ordena corretamente no Query Builder depois. Para diretórios e imobiliárias, planeje de 6 a 10 meta fields por registro; mais que isso costuma indicar que dois tipos de registro foram fundidos sem necessidade.

### Passo 3: Cadastre os primeiros registros

Cadastrar três a cinco registros reais antes de desenhar páginas dinâmicas com Crocoblock é o atalho que poupa retrabalho: com dados de verdade na tela, você enxerga onde o texto estoura, onde a imagem falta e qual campo fica vazio. Cada registro é uma entrada normal do WordPress, criada na tela do custom post type que apareceu no menu lateral. Preencha título, conteúdo e todos os meta fields. Pular esse passo e desenhar com campos vazios é onde a maioria dos travamentos de layout nasce, porque o template fica calibrado para um conteúdo que não existe.

### Passo 4: Desenhe o template com dynamic field

O [Dynamic Field](https://crocoblock.com/knowledge-base/jetengine/dynamic-field-widget-overview/) é o widget que transforma um registro em página dentro de páginas dinâmicas com Crocoblock: você cria um Listing Item (ou edita o single no Elementor PRO 3.x) e, em cada widget Dynamic Field, escolhe a Source, Post/Term/User Data para campos nativos, ou Meta Data para os campos do JetEngine. Arraste um Dynamic Field para o título, outro para o preço, outro para a imagem. Cada widget puxa um atributo. Um template desenhado assim renderiza qualquer registro do tipo: cadastre o imóvel 500 e ele herda o layout sem nenhum clique extra no Elementor.

### Passo 5: Liste os registros com listing grid e query builder

O Listing Grid coloca os registros numa grade e o [Query Builder](https://crocoblock.com/knowledge-base/features/query-builder-overview/) decide quais aparecem e em que ordem: ative o toggle "Use custom query" e selecione uma consulta que filtre por cidade, faixa de preço ou data. Coloque o Listing Grid na página de busca das suas páginas dinâmicas com Crocoblock, aponte para o Listing Item do Passo 4 e defina colunas e quantidade por página. Para volumes acima de algumas dezenas de itens, ligue a paginação AJAX para a grade carregar sem recarregar a página inteira. É aqui que o diretório vira navegável de verdade.

<p class="wp-caption-text">Legenda: a mesma grade serve diretório, imobiliária e catálogo, muda só o custom post type por trás.</p>

---

## Dynamic field e listing grid: Como os widgets puxam o dado

Os dois widgets que sustentam páginas dinâmicas com Crocoblock têm escopos diferentes: o Dynamic Field exibe 1 atributo de um registro, e o Listing Grid repete um Listing Item para muitos registros de uma vez. Essa separação entre dado e layout é o que diferencia o ecossistema de um construtor estático.

Segundo a documentação do JetEngine, o Listing Grid lê meta fields de custom post types, taxonomias, usuários e até Custom Content Types, então a mesma grade que monta um diretório de médicos monta um catálogo de peças trocando só a fonte. Há uma armadilha nos tickets de suporte da FULL: quando dois custom post types dividem um Listing Grid, os meta fields precisam ter o mesmo nome nos dois tipos, senão metade dos cards fica em branco. A [documentação de template](https://full.services/glossario/template-tag/) recomenda criar um Meta Box único e atribuí-lo aos dois. Entender essa relação separa um [site dinâmico bem estruturado](https://full.services/jetengine-e-elementor-o-combo-perfeito-para-site-dinamico/) de uma grade que quebra a cada registro.

---

## Query builder: Filtros, ordenação e a tangente que ninguém documenta

O Query Builder é o cérebro das páginas dinâmicas com Crocoblock: ele monta a consulta SQL por trás da grade sem você escrever 1 linha de [WP_Query](https://full.services/glossario/wp-query/). Numa única interface visual, você define meta queries por preço, a ordenação dos resultados e a relação entre [taxonomias](https://full.services/glossario/taxonomia-wordpress/) como categoria e localização.

Combinado com o JetSmartFilters, o Query Builder vira o motor de busca filtrável que um diretório ou imobiliária exige, com filtros por cidade, faixa de valor e categoria atualizando a grade em tempo real. Aqui mora a tangente que a documentação oficial não traz: em diretórios acima de 5.000 registros, o Listing Grid sem paginação AJAX e sem índice no meta field gera consultas lentas no MySQL, porque cada meta query roda um JOIN na tabela de postmeta. A saída testada é mover os atributos filtráveis para uma Custom Content Type, tabela própria do JetEngine fora do postmeta, e indexar a coluna do filtro, algo que o [loop padrão do WordPress](https://full.services/glossario/loop-wordpress/) não resolve sozinho.

---

## Diretório, imobiliária e catálogo: O mesmo motor, três projetos

O mesmo conjunto de páginas dinâmicas com Crocoblock atende 3 projetos distintos sem trocar de ferramenta: muda só a modelagem do custom post type. Um diretório usa o CPT "Profissionais" com especialidade e cidade; uma imobiliária usa "Imóveis" com metragem e preço; um catálogo usa "Produtos" com SKU.

Em todos os três, o trio Dynamic Field, Listing Grid e Query Builder permanece idêntico, e é essa reutilização que torna o ecossistema atraente para agências que entregam vários sites por trimestre. A escolha entre custom post type e Custom Content Type depende do volume: até alguns milhares de registros, o CPT nativo basta e mantém compatibilidade com plugins de SEO e cache. Para um catálogo com dezenas de milhares de linhas, a Custom Content Type ganha por gravar numa tabela própria, fora do postmeta inchado. Quem monta esse projeto encontra o passo a passo em [como montar um site de imobiliária do zero com Crocoblock](https://full.services/crocoblock-para-sites-de-imobiliaria-como-montar-do-zero/), que detalha a modelagem para alto volume.

---

## Ative o Crocoblock no plano certo e dilua o custo por site

Montar páginas dinâmicas com Crocoblock exige a licença do JetEngine, e o caminho com menor custo por site é o bundle. A gente vê no suporte da FULL que comprar plugin premium avulso, site a site, é o que mais pesa na conta de quem mantém vários projetos ao mesmo tempo.

O plano PRO da FULL sai por R$849 e inclui o Crocoblock junto com Elementor PRO, Rank Math PRO e mais 14 plugins liberados. Diluído nos sites que você gerencia, isso fica em torno de R$85 por site, bem abaixo da licença avulsa do JetEngine cobrada por projeto. Para quem entrega diretório, imobiliária ou catálogo em série, ativar tudo de uma vez em [FULL.services/planos](https://full.services/planos) remove a fricção de controlar licença a cada novo site. Veja a combinação completa em [Crocoblock com Elementor PRO](https://full.services/crocoblock-com-elementor-pro-a-combinacao-definitiva/), que mostra os dois plugins operando juntos.

---

<aside aria-label="Metodologia dos Testes">
## Metodologia dos testes
<p>As observações deste guia vêm de instalações reais montadas e mantidas entre <time datetime="2026-01">janeiro</time> e <time datetime="2026-06">junho de 2026</time>, em WordPress 6.x com PHP 8.2 e Elementor PRO 3.x sobre o ecossistema Crocoblock (JetEngine, JetSmartFilters). Cada padrão descrito, grade vazia por arquivo ausente, campos em branco por meta field divergente e lentidão acima de 5.000 registros, foi reproduzido em três projetos distintos: um diretório de profissionais, uma imobiliária e um catálogo de produtos. Os resultados foram cruzados com os tickets de suporte recorrentes da base FULL de 150 mil sites conectados, que mostram esses três erros como os mais frequentes em quem começa com páginas dinâmicas. Os caminhos de menu e nomes de widget seguem a documentação oficial do JetEngine consultada no mesmo período, não memória de versões antigas, justamente porque o ecossistema muda nomes de opção entre releases e a doc é a única fonte estável.</p>
</aside>

---

## Perguntas frequentes sobre páginas dinâmicas com Crocoblock

<details>
<summary>Por que o Listing Grid aparece vazio mesmo com posts publicados?</summary>
<p>Quase sempre o Listing Grid de arquivo aponta para um custom post type sem "Has archive" ativo, então não há arquivo para listar. A correção é abrir JetEngine > Post Types, marcar "Has archive" e salvar os permalinks em Configurações > Links permanentes. Outra causa frequente é o Listing Item apontar para um tipo de registro diferente do cadastrado. Confira se o Listing está vinculado ao mesmo CPT dos seus registros antes de mexer no resto.</p>
</details>

<details>
<summary>É possível criar páginas dinâmicas com Crocoblock sem saber programar?</summary>
<p>Sim, criar páginas dinâmicas com Crocoblock é um fluxo totalmente visual: custom post type, meta fields, Dynamic Field e Listing Grid são configurados em telas do JetEngine, sem escrever PHP ou SQL. O Query Builder monta a consulta por uma interface de cliques. A única curva de aprendizado é conceitual, entender que o dado mora num registro e o template apenas o exibe. Quem já usa o Elementor PRO assimila o modelo em uma ou duas tardes de prática com dados reais.</p>
</details>

<details>
<summary>Qual a diferença entre custom post type e Custom Content Type no JetEngine?</summary>
<p>Em páginas dinâmicas com Crocoblock, o custom post type grava na tabela padrão de posts do WordPress e mantém compatibilidade total com plugins de SEO, cache e backup. A Custom Content Type grava numa tabela própria do JetEngine, fora do postmeta, e ganha desempenho em volumes acima de dezenas de milhares de registros. Para diretório e imobiliária com até alguns milhares de fichas, o CPT nativo basta. Para catálogos enormes com filtros pesados, a Custom Content Type reduz a carga no MySQL.</p>
</details>

<details>
<summary>Quanto custa o Crocoblock por site no bundle da FULL?</summary>
<p>No plano PRO da FULL, que sai por R$849, o Crocoblock vem junto com Elementor PRO, Rank Math PRO e outros 14 plugins premium liberados. Diluído entre os sites que você gerencia no bundle, o custo fica em torno de R$85 por site, bem abaixo de comprar a licença avulsa do JetEngine por projeto. Para agências que entregam vários diretórios ou catálogos por trimestre, ativar tudo em FULL.services/planos elimina o controle de licença site a site.</p>
</details>

<details>
<summary>O que o Query Builder do JetEngine faz na prática?</summary>
<p>O Query Builder monta a consulta SQL por trás de qualquer Listing Grid sem você escrever WP_Query: define filtros por meta field (preço entre X e Y), ordenação, e relação entre taxonomias numa interface visual. Combinado com o JetSmartFilters, ele vira o motor de busca filtrável de um diretório ou imobiliária, atualizando a grade em tempo real conforme o visitante escolhe cidade ou faixa de valor. É a peça que transforma uma lista estática em páginas dinâmicas com Crocoblock prontas para busca navegável.</p>
</details>

---

## Próximos passos para escalar seu site dinâmico

Páginas dinâmicas com Crocoblock invertem a lógica de manutenção: você para de editar páginas e passa a editar dados, com um template servindo todos os registros. O caminho é sempre o mesmo, custom post type, meta fields, Dynamic Field e Listing Grid com Query Builder, e ele escala de um diretório de bairro a um catálogo nacional sem trocar de ferramenta. A decisão que define o sucesso de páginas dinâmicas com Crocoblock acontece antes do design: modelar o dado certo no custom post type. Para aprofundar o método aplicado a projetos reais, veja [como projetar um site WordPress com conteúdo dinâmico](https://full.services/projetar-seu-site-wordpress-com-conteudo-dinamico/) e, para continuar aprendendo, o [FULL Academy](https://full.services/academy/) reúne os tutoriais de Elementor e Crocoblock num só lugar.


---

## Metadados Estruturados (Schema.org)

```json-ld
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://full.services/paginas-dinamicas-com-crocoblock-no-elementor/#article",
      "headline": "Páginas dinâmicas com Crocoblock: Guia completo em 5 passos",
      "description": "Páginas dinâmicas com Crocoblock são páginas que o WordPress monta sozinho a partir de um banco de registros, em vez de você construir cada uma à mão no Elementor.",
      "url": "https://full.services/paginas-dinamicas-com-crocoblock-no-elementor/",
      "datePublished": "2026-06-28T09:00:00-03:00",
      "dateModified": "2026-06-28T09:00:00-03:00",
      "inLanguage": "pt-BR",
      "articleSection": "Elementor",
      "keywords": [
        "paginas dinamicas com crocoblock",
        "Elementor",
        "WordPress Page Builders",
        "Web Design"
      ],
      "author": {
        "@id": "https://full.services/#person-clayton"
      },
      "publisher": {
        "@id": "https://full.services/#org"
      },
      "about": [
        {
          "@type": "Thing",
          "name": "Elementor",
          "@id": "https://www.wikidata.org/wiki/Q96322879",
          "sameAs": "https://www.wikidata.org/wiki/Q96322879"
        },
        {
          "@type": "Thing",
          "name": "WordPress Page Builders"
        },
        {
          "@type": "Thing",
          "name": "Web Design"
        }
      ],
      "mentions": [
        {
          "@type": "Organization",
          "name": "Elementor",
          "url": "https://elementor.com/",
          "@id": "https://www.wikidata.org/wiki/Q96322879",
          "sameAs": "https://www.wikidata.org/wiki/Q96322879"
        },
        {
          "@type": "Organization",
          "name": "WordPress",
          "url": "https://wordpress.org/",
          "@id": "https://www.wikidata.org/wiki/Q13166",
          "sameAs": "https://www.wikidata.org/wiki/Q13166"
        }
      ],
      "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "https://full.services/paginas-dinamicas-com-crocoblock-no-elementor/"
      },
      "wordCount": 2557,
      "citation": [
        {
          "@type": "CreativeWork",
          "name": "W3Techs",
          "url": "https://w3techs.com/technologies/details/cm-wordpress",
          "publisher": {
            "@type": "Organization",
            "name": "W3Techs"
          }
        },
        {
          "@type": "CreativeWork",
          "name": "Crocoblock KB",
          "url": "https://crocoblock.com/knowledge-base/features/listing-grid-widget-overview/",
          "publisher": {
            "@type": "Organization",
            "name": "Crocoblock KB"
          }
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://full.services/paginas-dinamicas-com-crocoblock-no-elementor/#faq",
      "isPartOf": {
        "@id": "https://full.services/paginas-dinamicas-com-crocoblock-no-elementor/#article"
      },
      "mainEntity": [
        {
          "@type": "Question",
          "@id": "https://full.services/paginas-dinamicas-com-crocoblock-no-elementor/#faq-q1",
          "name": "Por que o Listing Grid aparece vazio mesmo com posts publicados?",
          "inLanguage": "pt-BR",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Quase sempre o Listing Grid de arquivo aponta para um custom post type sem "Has archive" ativo, então não há arquivo para listar. A correção é abrir JetEngine > Post Types, marcar "Has archive" e salvar os permalinks em Configurações > Links permanentes. Outra causa frequente é o Listing Item apontar para um tipo de registro diferente do cadastrado. Confira se o Listing está vinculado ao mesmo CPT dos seus registros antes de mexer no resto.",
            "author": {
              "@id": "https://full.services/#org"
            }
          }
        },
        {
          "@type": "Question",
          "@id": "https://full.services/paginas-dinamicas-com-crocoblock-no-elementor/#faq-q2",
          "name": "É possível criar páginas dinâmicas com Crocoblock sem saber programar?",
          "inLanguage": "pt-BR",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Sim, criar páginas dinâmicas com Crocoblock é um fluxo totalmente visual: custom post type, meta fields, Dynamic Field e Listing Grid são configurados em telas do JetEngine, sem escrever PHP ou SQL. O Query Builder monta a consulta por uma interface de cliques. A única curva de aprendizado é conceitual, entender que o dado mora num registro e o template apenas o exibe. Quem já usa o Elementor PRO assimila o modelo em uma ou duas tardes de prática com dados reais.",
            "author": {
              "@id": "https://full.services/#org"
            }
          }
        },
        {
          "@type": "Question",
          "@id": "https://full.services/paginas-dinamicas-com-crocoblock-no-elementor/#faq-q3",
          "name": "Qual a diferença entre custom post type e Custom Content Type no JetEngine?",
          "inLanguage": "pt-BR",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Em páginas dinâmicas com Crocoblock, o custom post type grava na tabela padrão de posts do WordPress e mantém compatibilidade total com plugins de SEO, cache e backup. A Custom Content Type grava numa tabela própria do JetEngine, fora do postmeta, e ganha desempenho em volumes acima de dezenas de milhares de registros. Para diretório e imobiliária com até alguns milhares de fichas, o CPT nativo basta. Para catálogos enormes com filtros pesados, a Custom Content Type reduz a carga no MySQL.",
            "author": {
              "@id": "https://full.services/#org"
            }
          }
        },
        {
          "@type": "Question",
          "@id": "https://full.services/paginas-dinamicas-com-crocoblock-no-elementor/#faq-q4",
          "name": "Quanto custa o Crocoblock por site no bundle da FULL?",
          "inLanguage": "pt-BR",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "No plano PRO da FULL, que sai por R$849, o Crocoblock vem junto com Elementor PRO, Rank Math PRO e outros 14 plugins premium liberados. Diluído entre os sites que você gerencia no bundle, o custo fica em torno de R$85 por site, bem abaixo de comprar a licença avulsa do JetEngine por projeto. Para agências que entregam vários diretórios ou catálogos por trimestre, ativar tudo em FULL.services/planos elimina o controle de licença site a site.",
            "author": {
              "@id": "https://full.services/#org"
            }
          }
        },
        {
          "@type": "Question",
          "@id": "https://full.services/paginas-dinamicas-com-crocoblock-no-elementor/#faq-q5",
          "name": "O que o Query Builder do JetEngine faz na prática?",
          "inLanguage": "pt-BR",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "O Query Builder monta a consulta SQL por trás de qualquer Listing Grid sem você escrever WP_Query: define filtros por meta field (preço entre X e Y), ordenação, e relação entre taxonomias numa interface visual. Combinado com o JetSmartFilters, ele vira o motor de busca filtrável de um diretório ou imobiliária, atualizando a grade em tempo real conforme o visitante escolhe cidade ou faixa de valor. É a peça que transforma uma lista estática em páginas dinâmicas com Crocoblock prontas para busca navegável.",
            "author": {
              "@id": "https://full.services/#org"
            }
          }
        }
      ]
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://full.services/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Elementor",
          "item": "https://full.services/elementor/"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Páginas dinâmicas com Crocoblock: Guia completo em 5 passos",
          "item": "https://full.services/paginas-dinamicas-com-crocoblock-no-elementor/"
        }
      ]
    },
    {
      "@type": "Organization",
      "@id": "https://full.services/#org",
      "name": "FULL Services",
      "url": "https://full.services",
      "logo": {
        "@type": "ImageObject",
        "url": "https://full.services/wp-content/uploads/full-services-logo.png",
        "width": 200,
        "height": 60
      },
      "sameAs": [
        "https://www.instagram.com/fullservicesbr",
        "https://www.facebook.com/fullservices.br",
        "https://www.linkedin.com/company/fullservicesbr/"
      ],
      "knowsAbout": [
        "WordPress",
        "WordPress Hosting",
        "Web Development",
        "Performance Optimization",
        "WordPress Security",
        "SEO para WordPress"
      ],
      "award": [
        "Gold Medal - The WP Weekly Awards 2023 (https://thewpweekly.com/awards-2023/)",
        "Gold Medal - The WP Weekly Awards 2024 (https://thewpweekly.com/awards-2024/)"
      ],
      "hasCredential": {
        "@type": "EducationalOccupationalCredential",
        "credentialCategory": "certification",
        "name": "CVE Numbering Authority (CNA)",
        "description": "Autoridade de numeração de vulnerabilidades (CVE) para o ecossistema WordPress, autorizada a atribuir IDs CVE. Certificação válida desde 2022-05-03, com abrangência global.",
        "url": "https://www.cve.org/PartnerInformation/ListofPartners/partner/FULL",
        "recognizedBy": {
          "@type": "Organization",
          "name": "CISA — Cybersecurity and Infrastructure Security Agency",
          "url": "https://www.cisa.gov/",
          "sameAs": "https://www.cisa.gov/"
        }
      }
    },
    {
      "@type": "Person",
      "@id": "https://full.services/#person-clayton",
      "name": "Clayton Margiotti",
      "givenName": "Clayton",
      "familyName": "Margiotti",
      "jobTitle": "Fundador e CEO da FULL Services",
      "description": "Fundador e CEO da FULL Services, plataforma WordPress SaaS com 50 mil clientes e 150 mil sites conectados, e anchor do ecossistema Elevor Global. Em 2024 conduziu a FULL a se tornar a primeira e unica empresa brasileira aprovada como CVE Numbering Authority sob a CISA (DHS/EUA). Mais de 20 anos construindo empresas digitais, com 13+ reconhecimentos internacionais (Facebook, GPTW, ONU, RD Summit).",
      "url": "https://full.services/sobre-nos/",
      "image": "https://full.services/wp-content/uploads/2026/05/clayton-margiotti.jpg",
      "sameAs": [
        "https://www.linkedin.com/in/cmargiotti/"
      ],
      "knowsAbout": [
        "Artificial Intelligence",
        "Cybersecurity",
        "CVE Program",
        "WordPress Enterprise",
        "SaaS Platforms",
        "Digital Infrastructure",
        "Technology Entrepreneurship",
        "Company Building",
        "Business Leadership",
        "Digital Growth"
      ],
      "hasOccupation": {
        "@type": "Occupation",
        "name": "Fundador e CEO",
        "occupationalCategory": "11-1011.00"
      },
      "knowsLanguage": [
        {
          "@type": "Language",
          "name": "Portuguese",
          "alternateName": "pt-BR"
        },
        {
          "@type": "Language",
          "name": "English",
          "alternateName": "en"
        }
      ],
      "memberOf": {
        "@type": "Organization",
        "name": "CVE Numbering Authorities",
        "url": "https://www.cve.org/",
        "sameAs": "https://www.cve.org/"
      },
      "alumniOf": [
        {
          "@type": "EducationalOrganization",
          "name": "Global Scaling Academy (Blitzscaling Program)",
          "url": "https://www.blitzscalingacademy.com"
        },
        {
          "@type": "EducationalOrganization",
          "name": "Esade",
          "url": "https://www.esade.edu"
        },
        {
          "@type": "EducationalOrganization",
          "name": "Business School Sao Paulo (BSP)",
          "url": "https://bsp.edu.br/"
        },
        {
          "@type": "EducationalOrganization",
          "name": "Tera",
          "url": "https://somostera.com"
        },
        {
          "@type": "EducationalOrganization",
          "name": "Le Wagon",
          "url": "https://www.lewagon.com"
        },
        {
          "@type": "EducationalOrganization",
          "name": "FIAP",
          "url": "https://www.fiap.com.br"
        },
        {
          "@type": "EducationalOrganization",
          "name": "PUCRS",
          "url": "https://online.pucrs.br/"
        }
      ],
      "award": [
        "Digital Disruptor – Engaging Experiences Master (Globant, 2021)",
        "Maior ROI do e-commerce brasileiro – Letrissimas (Facebook, 2019)",
        "1º lugar – Melhores Empresas para Trabalhar no Brasil – Eleva Digital (Great Place to Work, 2018)",
        "Case global de educacao no Facebook – Metodo SUPERA (Facebook, 2017)",
        "Maquina de Geracao de Leads, Agencia do Ano (RD Summit / RD Station, 2015)",
        "Monthly Recurring Revenue, top performance (RD Summit / RD Station, 2015)",
        "Quality/Efficiency – Entrepreneurship Training (UNCTAD / PNUD-ONU, 2010)"
      ],
      "subjectOf": [
        {
          "@type": "NewsArticle",
          "url": "https://www.globant.com/news/globant-reveals-inaugural-digital-disruptors-award-winners",
          "publisher": {
            "@type": "Organization",
            "name": "Globant"
          }
        },
        {
          "@type": "NewsArticle",
          "url": "https://www.prnewswire.com/news-releases/letrissimas-com-e-destaque-do-e-commerce-brasileiro-com-maior-roi-de-2018-877517801.html",
          "publisher": {
            "@type": "Organization",
            "name": "PR Newswire"
          }
        },
        {
          "@type": "NewsArticle",
          "url": "https://www.segs.com.br/seguros/102599-gestao-de-pessoas-garante-mais-lucro-as-empresas",
          "publisher": {
            "@type": "Organization",
            "name": "Segs"
          }
        },
        {
          "@type": "NewsArticle",
          "url": "https://franquiaeducacional.com/negocios-inovadores-facebook-elege-supera-case-mundial-de-educacao",
          "publisher": {
            "@type": "Organization",
            "name": "Franquia Educacional"
          }
        },
        {
          "@type": "NewsArticle",
          "url": "https://acontecendoaqui.com.br/marketing/resultados-digitais-divulga-vencedores-do-premio-agencias-de-resultados-2015-durante-o-rd",
          "publisher": {
            "@type": "Organization",
            "name": "Acontecendo Aqui"
          }
        }
      ],
      "worksFor": {
        "@type": "Organization",
        "@id": "https://full.services/#org"
      }
    },
    {
      "@type": "HowTo",
      "@id": "https://full.services/paginas-dinamicas-com-crocoblock-no-elementor/#howto",
      "isPartOf": {
        "@id": "https://full.services/paginas-dinamicas-com-crocoblock-no-elementor/#article"
      },
      "name": "Passo a passo: paginas dinamicas com crocoblock",
      "description": "Guia passo a passo sobre paginas dinamicas com crocoblock para WordPress.",
      "url": "https://full.services/paginas-dinamicas-com-crocoblock-no-elementor/",
      "totalTime": "PT30M",
      "author": {
        "@type": "Organization",
        "@id": "https://full.services/#org"
      },
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Passo 1: Crie o custom post type no JetEngine",
          "text": "O custom post type é o ponto de partida de todas as páginas dinâmicas com Crocoblock: em JetEngine > Post Types você define o nome (ex: "Imóveis"), o slug e marca a opção "Has archive" se quiser uma página de arquivo nativa. É o <a href="https://full.services/glossario/custom-post-type/">custom post type</a> que registra o tipo no banco. Esse passo leva menos de dois minutos e dispensa código. Marcar "Has archive" desde o início evita o problema mais comum de grade vazia, porque o Listing Grid de arquivo precisa de um arquivo registrado para apontar. Defina também os suportes (título, editor, thumbnail) conforme o que cada card vai exibir depois."
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Passo 2: Descreva os meta fields do registro",
          "text": "Os meta fields são os atributos que diferenciam um registro do outro: preço, metragem, cidade, telefone ou categoria. Em JetEngine > Meta Boxes você cria um Meta Box, associa ao custom post type e adiciona cada campo com um tipo correto, número para preço, texto para endereço, mídia para galeria. O tipo do campo importa: um preço salvo como texto não ordena corretamente no Query Builder depois. Para diretórios e imobiliárias, planeje de 6 a 10 meta fields por registro; mais que isso costuma indicar que dois tipos de registro foram fundidos sem necessidade."
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Passo 3: Cadastre os primeiros registros",
          "text": "Cadastrar três a cinco registros reais antes de desenhar páginas dinâmicas com Crocoblock é o atalho que poupa retrabalho: com dados de verdade na tela, você enxerga onde o texto estoura, onde a imagem falta e qual campo fica vazio. Cada registro é uma entrada normal do WordPress, criada na tela do custom post type que apareceu no menu lateral. Preencha título, conteúdo e todos os meta fields. Pular esse passo e desenhar com campos vazios é onde a maioria dos travamentos de layout nasce, porque o template fica calibrado para um conteúdo que não existe."
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Passo 4: Desenhe o template com dynamic field",
          "text": "O <a href="https://crocoblock.com/knowledge-base/jetengine/dynamic-field-widget-overview/" rel="noopener" target="_blank">Dynamic Field</a> é o widget que transforma um registro em página dentro de páginas dinâmicas com Crocoblock: você cria um Listing Item (ou edita o single no Elementor PRO 3.x) e, em cada widget Dynamic Field, escolhe a Source, Post/Term/User Data para campos nativos, ou Meta Data para os campos do JetEngine. Arraste um Dynamic Field para o título, outro para o preço, outro para a imagem. Cada widget puxa um atributo. Um template desenhado assim renderiza qualquer registro do tipo: cadastre o imóvel 500 e ele herda o layout sem nenhum clique extra no Elementor."
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Passo 5: Liste os registros com listing grid e query builder",
          "text": "O Listing Grid coloca os registros numa grade e o <a href="https://crocoblock.com/knowledge-base/features/query-builder-overview/" rel="noopener" target="_blank">Query Builder</a> decide quais aparecem e em que ordem: ative o toggle "Use custom query" e selecione uma consulta que filtre por cidade, faixa de preço ou data. Coloque o Listing Grid na página de busca das suas páginas dinâmicas com Crocoblock, aponte para o Listing Item do Passo 4 e defina colunas e quantidade por página. Para volumes acima de algumas dezenas de itens, ligue a paginação AJAX para a grade carregar sem recarregar a página inteira. É aqui que o diretório vira navegável de verdade. <p class="wp-caption-text">Legenda: a mesma grade serve diretório, imobiliária e catálogo, muda só o custom post type por trás.</p> --- Os dois widgets que sustentam páginas dinâmicas com Crocoblock têm escopos diferentes: o Dynamic Field exibe 1 atributo de um registro, e o Listing Grid repete um Listing Item para muitos registros de uma vez. Essa separação entre dado e layout é o que diferencia o ecossistema de um construtor estático. Segundo a documentação do JetEngine, o Listing Grid lê meta fields de custom post types,"
        }
      ]
    }
  ]
}
```
