---
title: "Como criar shortcodes customizados com o JetEngine"
description: "Criar shortcodes customizados com o JetEngine é transformar uma listagem ou um dado dinâmico em um código curto que você insere em qualquer página."
url: https://full.services/criar-shortcodes-customizados-com-jetengine/
date: 2026-06-21
author: "Clayton Margiotti"
---

# Como criar shortcodes customizados com o JetEngine

No seu site WordPress, criar **shortcodes customizados com o JetEngine** é gerar um código curto que exibe dados dinâmicos em qualquer lugar da página. Segundo a [documentação do WordPress](https://developer.wordpress.org/), shortcodes devem renderizar conteúdo de forma segura e reutilizável. O erro mais comum é colar o shortcode num contexto sem os dados que ele espera, o que faz ele renderizar vazio ou com o código aparente na tela.

Criar shortcodes customizados com o JetEngine é transformar uma listagem ou um dado dinâmico em um código curto que você insere em qualquer página, widget ou editor, sem repetir a montagem a cada uso. O JetEngine gera o shortcode a partir das suas fontes de dados, e o WordPress o renderiza onde você colar. O resultado é um conteúdo dinâmico reutilizável, que aparece com um simples código no [Elementor](https://full.services/glossario/elementor/) ou no editor padrão. Este guia faz parte do hub de [Crocoblock da FULL](https://full.services/crocoblock/) e mostra o passo a passo real, da criação do shortcode ao teste da renderização.

---

## O que é um shortcode dinâmico e para que serve

Um shortcode dinâmico é um código curto que, ao ser colado em uma página, renderiza um conteúdo gerado na hora, como uma listagem de posts ou o valor de um campo. O JetEngine cria esses shortcodes a partir das suas listagens e dados, para você exibir o mesmo conteúdo em vários lugares sem montá-lo de novo.

Na prática, você define o que o shortcode vai exibir, gera o código no JetEngine e o cola onde precisar, em uma página, um widget de texto ou outro construtor. Assim, uma grade de produtos aparece em qualquer lugar com um código só. Nos atendimentos da FULL sobre [sites com Elementor e Crocoblock](https://full.services/como-criar-um-site-com-elementor-pro-e-wordpress/), o tropeço campeão é colar o shortcode em um contexto sem os dados que ele espera, o que faz ele renderizar vazio ou mostrar o código bruto na tela.

<p class="wp-caption-text">Legenda: o shortcode do JetEngine renderiza a listagem dinâmica em qualquer lugar da página.</p>

## Quando vale um shortcode em vez de montar no construtor

Vale usar um shortcode quando o mesmo conteúdo dinâmico se repete em vários lugares, quando você quer exibir uma listagem fora do construtor visual ou quando precisa inserir dados em um widget de texto ou editor simples, e vale montar no construtor quando o conteúdo é único de uma página. O shortcode rende quando há reúso do mesmo bloco dinâmico.

Use este teste antes de criar. Diga SIM ao shortcode se você precisa exibir a mesma listagem ou o mesmo dado em páginas diferentes, ou em um lugar que não é o construtor visual. Diga NÃO se o conteúdo aparece uma vez só, dentro do Elementor, porque aí montar direto é mais simples. O encaixe ideal é o conteúdo dinâmico reutilizado em vários pontos. Para combinar shortcodes com filtros e buscas, o guia de [sistemas de filtros no Elementor](https://full.services/como-criar-sistemas-de-filtros-no-elementor-com-plugins-extras/) complementa.

## Pré-requisitos antes de criar o shortcode

Antes de criar o shortcode você precisa de três peças no lugar, o JetEngine ativo, a fonte de dados ou a listagem que o shortcode vai exibir, e o lugar onde ele será inserido, e a falta de qualquer uma deixa o shortcode sem conteúdo ou sem destino. Sem uma listagem montada, não há o que o shortcode renderizar.

Checklist de prontidão antes de começar:

- JetEngine do Crocoblock instalado e ativado.
- A listagem ou a fonte de dados a exibir já criada.
- A definição de onde o shortcode será inserido.
- Os parâmetros que o shortcode aceita, como quantidade de itens.
- Um contexto adequado, com os dados que o shortcode espera.
- Uma página de teste para validar a renderização.
- Backup do site antes de aplicar em produção.

Pense no shortcode como o atalho de teclado de uma ação repetida: em vez de refazer todos os passos a cada vez, você aciona o atalho e o resultado aparece. O JetEngine cria o atalho a partir da sua listagem, e você o usa onde quiser. Mas o atalho só funciona no contexto certo, então colá-lo onde os dados não existem é como apertar o atalho fora do programa, nada acontece.

## Como criar o shortcode customizado em 5 passos

Criar o shortcode segue cinco passos, da definição do conteúdo ao teste da renderização, e respeitar a ordem evita o erro mais comum: usar o shortcode num contexto sem os dados que ele espera. Cada passo prepara o conteúdo reutilizável. Confirme antes que o JetEngine está ativo e a fonte de dados existe, porque o shortcode depende dos dois.

<table id="etapas-shortcodes-jetengine">
  <caption>Shortcodes customizados com JetEngine: etapas, objetivo e validação</caption>
  <thead>
    <tr>
      <th scope="col">Etapa</th>
      <th scope="col">Objetivo</th>
      <th scope="col">Check de validação</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">Definir o que exibir</th>
      <td>Escolher o conteúdo</td>
      <td>Listagem ou dado definido</td>
    </tr>
    <tr>
      <th scope="row">Criar a listagem no JetEngine</th>
      <td>Montar a fonte</td>
      <td>Listagem pronta</td>
    </tr>
    <tr>
      <th scope="row">Gerar o shortcode</th>
      <td>Obter o código</td>
      <td>Shortcode disponível</td>
    </tr>
    <tr>
      <th scope="row">Inserir o shortcode</th>
      <td>Colocar na página</td>
      <td>Código colado no destino</td>
    </tr>
    <tr>
      <th scope="row">Testar a renderização</th>
      <td>Confirmar o resultado</td>
      <td>Conteúdo aparecendo certo</td>
    </tr>
  </tbody>
</table>

### Passo 1: Defina o que o shortcode vai exibir

Decida o conteúdo dinâmico que o shortcode vai renderizar, uma grade de produtos, uma lista de posts ou o valor de um campo, porque é essa definição que orienta toda a criação. Pense em onde esse conteúdo vai aparecer e quantas vezes se repete, conforme a [referência dos plugins do WordPress](https://wordpress.org/plugins/) sobre shortcodes. Saber o objetivo evita criar um shortcode que não serve ao uso real. Esse passo dá direção: um shortcode bem definido nasce com um propósito claro de reúso, então pense no conteúdo e no contexto antes de montar a listagem, porque é mais fácil acertar a fonte de dados quando você já sabe onde e como o resultado vai ser usado na página.

### Passo 2: Crie a listagem no JetEngine

Monte a listagem que o shortcode vai exibir, definindo o Listing Item e a fonte de dados, porque é essa listagem que o shortcode vai renderizar onde for colado. Configure como cada item aparece e de qual conteúdo a listagem puxa, um Custom Post Type ou outra fonte. Ajuste a aparência da listagem para o resultado final. Confirme que a listagem funciona dentro do JetEngine antes de gerar o código. Esse passo cria a base do shortcode: o código curto é só um atalho para essa listagem, então ela precisa estar montada e funcionando primeiro, porque um shortcode aponta para uma listagem que já deve existir e exibir o conteúdo corretamente.

### Passo 3: Gere o shortcode da listagem

No JetEngine, gere o shortcode correspondente à listagem, copiando o código que ele oferece para inserção, porque é esse código que você vai colar onde quiser o conteúdo. O JetEngine entrega o shortcode pronto, muitas vezes com parâmetros que você pode ajustar, como a quantidade de itens. Anote os parâmetros disponíveis para personalizar a saída. Guarde o shortcode para usar nos próximos passos. Esse passo transforma a listagem em um atalho reutilizável: a partir do shortcode, o mesmo conteúdo pode aparecer em qualquer lugar que aceite código, sem você remontar a listagem a cada uso, que é justamente a vantagem do método.

### Passo 4: Insira o shortcode no destino

Cole o shortcode no lugar onde o conteúdo deve aparecer, uma página, um widget de texto ou um bloco de shortcode no construtor, porque é a inserção que faz o conteúdo dinâmico se renderizar ali. Garanta que o contexto tem os dados que o shortcode espera, especialmente se ele depende do post atual. Ajuste os parâmetros do shortcode conforme o caso, se houver. Se o JetEngine não conecta com o Elementor e o shortcode não renderiza no construtor, veja como corrigir o [erro de conexão entre JetEngine e Elementor](https://full.services/wp-fixer/corrigir-conexao-jetengine-elementor/). Esse passo coloca o conteúdo no ar, então confirme o contexto certo antes de publicar.

### Passo 5: Teste a renderização do shortcode

Abra a página no front-end e confirme que o shortcode renderiza o conteúdo esperado, e não o código bruto nem um espaço vazio, porque só o teste real prova que ele funciona no contexto. Verifique se a listagem aparece com os dados certos e a aparência prevista. Teste no celular, já que a renderização pode diferir. Se um conflito de campos personalizados entre o ACF e o JetEngine atrapalhar os dados, veja como corrigir o [conflito de Custom Fields entre ACF e JetEngine](https://full.services/wp-fixer/corrigir-conflito-custom-fields-acf-jetengine/). Esse passo valida o reúso: um shortcode que renderiza certo em uma página vai renderizar igual em qualquer outra com o mesmo contexto.

<p class="wp-caption-text">Legenda: cada passo prepara o reúso, da listagem ao shortcode renderizado na página.</p>

## Erros comuns ao criar shortcodes com JetEngine

Os três erros mais comuns ao criar shortcodes são colar o código em um contexto sem dados, esquecer os parâmetros e usar o shortcode onde o construtor seria melhor. O primeiro é o mais frequente: inserir um shortcode que depende do post atual em um lugar sem esse contexto faz ele renderizar vazio ou mostrar o código bruto na tela.

O segundo erro é ignorar os parâmetros que o shortcode aceita, exibindo mais ou menos itens do que o ideal para aquele lugar. A correção é ajustar os parâmetros conforme o destino. O terceiro caso é usar shortcode onde o conteúdo é único de uma página, quando montar direto no construtor seria mais simples. Quando o shortcode não renderiza por falha de conexão com o construtor, vale ver como corrigir o [erro de conexão entre JetEngine e Elementor](https://full.services/wp-fixer/corrigir-conexao-jetengine-elementor/).

## Como manter os shortcodes em produção

Manter os shortcodes exige cuidar de duas frentes, a integridade da listagem de origem e a validade do contexto a cada uso, porque uma mudança na listagem altera todos os shortcodes que a usam e um shortcode colado num contexto novo pode parar de funcionar. O conteúdo dinâmico se espalha pelo site, então uma quebra na origem afeta vários pontos de uma vez.

Sempre que mudar a listagem de origem, confira os lugares onde o shortcode é usado, porque a alteração se reflete em todos eles. Ao colar um shortcode em um contexto novo, teste se os dados que ele espera estão disponíveis. Para licenciar o Crocoblock em vários projetos sem comprar avulso, o guia de [como criar um site com Elementor Pro](https://full.services/como-criar-um-site-com-elementor-pro-e-wordpress/) mostra o stack.

## Como a FULL faz isso em escala

A FULL padroniza a criação de shortcodes com JetEngine porque acompanha mais de 150 mil sites WordPress, e a necessidade de reaproveitar conteúdo dinâmico em vários pontos aparece o tempo todo, onde remontar a listagem em cada lugar vira gargalo. Em vez de licença avulsa do Crocoblock por instalação, a suíte entra no bundle e o padrão de shortcode reutilizável fica replicável de um site para outro.

No plano PRO da FULL, por [R$849](https://full.services/planos), o Crocoblock já vem no pacote para até dez sites, o que dá R$85 por site em vez de pagar cada licença separada. Para quem reaproveita conteúdo dinâmico em vários sites, a gente vê isso trocar um custo recorrente espalhado por um padrão único: a mesma listagem e o mesmo shortcode são exportados e reaproveitados de um projeto para outro, sem remontar o conteúdo do zero a cada site. É a economia que só aparece quando o stack é o mesmo em toda a base.

## Checklist final do shortcode

O checklist final do shortcode confirma, em uma passada, que o conteúdo dinâmico renderiza certo onde você o usa antes de publicar. Rode esta lista depois do passo 5 e a cada novo lugar onde colar o shortcode, porque o contexto muda de um destino para outro.

Antes de declarar pronto, confirme:

- A listagem de origem está montada e funciona no JetEngine.
- O shortcode foi gerado e copiado corretamente.
- O shortcode está colado em um contexto com os dados que ele espera.
- Os parâmetros do shortcode estão ajustados ao destino.
- A página renderiza o conteúdo, não o código bruto nem um vazio.
- A mesma renderização funciona nos diferentes lugares de uso.
- O conteúdo aparece bem no celular, não só no desktop.

Se qualquer item falhar, principalmente o contexto sem dados, volte ao passo correspondente antes de publicar.

## Perguntas frequentes sobre shortcodes customizados com JetEngine

<details>
  <summary>Preciso programar para criar um shortcode com o JetEngine?</summary>
  <p>Não. O JetEngine gera o shortcode a partir das suas listagens pela interface, sem você escrever código de shortcode na mão. Use o JetEngine quando quer reaproveitar conteúdo dinâmico sem programar. Reserve o código manual para lógicas muito específicas que o plugin não cobre, porque para a maioria dos casos o shortcode pronto do JetEngine já resolve, e o seu cuidado deve ir para o contexto onde ele é colado, não para a programação do shortcode em si.</p>
</details>

<details>
  <summary>Por que o shortcode aparece como texto bruto na página?</summary>
  <p>Quase sempre porque ele foi colado em um lugar que não processa shortcodes ou em um contexto sem os dados que ele espera. Quando o WordPress não interpreta o código, ele mostra o shortcode literal; quando faltam os dados, ele renderiza vazio. A causa costuma ser o destino errado. Para resolver, cole o shortcode em um campo que aceite shortcodes e garanta o contexto com os dados certos. Prefira testar no front-end, porque é lá que você vê se o código foi interpretado ou apareceu cru na tela.</p>
</details>

<details>
  <summary>Como ajusto a quantidade de itens que o shortcode mostra?</summary>
  <p>Você usa os parâmetros que o shortcode do JetEngine aceita, como o que define o número de itens exibidos. Esses parâmetros vão dentro do próprio código do shortcode, permitindo mostrar mais ou menos conteúdo conforme o lugar. Ajuste o valor conforme o espaço e o objetivo de cada destino. Reserve um shortcode com poucos itens para áreas de destaque e um com mais para páginas de listagem, porque o mesmo conteúdo pode precisar de quantidades diferentes dependendo de onde ele aparece no site.</p>
</details>

<details>
  <summary>É possível usar o shortcode fora do Elementor?</summary>
  <p>Sim, e essa é uma das vantagens. O shortcode do JetEngine funciona em qualquer lugar que aceite shortcodes, como o editor padrão do WordPress, um widget de texto ou outro construtor. Isso permite reaproveitar a listagem fora do Elementor, onde montar visualmente não é uma opção. Use o shortcode justamente nesses contextos sem construtor visual. Reserve a montagem direta no Elementor para quando o conteúdo é único daquela página, porque para reúso em editores simples o shortcode é a forma mais prática de trazer o conteúdo dinâmico.</p>
</details>

<details>
  <summary>Quando vale um shortcode em vez de montar a listagem no construtor?</summary>
  <p>Vale quando o mesmo conteúdo dinâmico se repete em vários lugares ou precisa aparecer fora do construtor visual. O shortcode permite inserir a listagem em páginas diferentes ou em editores simples com um código só, sem remontar nada. Prefira o shortcode para reúso e para contextos sem construtor. Reserve a montagem direta no Elementor para conteúdo único de uma página, porque para algo que aparece uma vez só montar visualmente é mais simples, enquanto para o que se repete o shortcode evita refazer o mesmo trabalho a cada lugar.</p>
</details>

## Próximos passos para conteúdo dinâmico reutilizável

Criar shortcodes customizados com o JetEngine é, no fundo, transformar uma listagem em um atalho reutilizável: defina o conteúdo, monte a listagem, gere o shortcode e, acima de tudo, cole-o num contexto com os dados que ele espera. Usar o shortcode num lugar sem esses dados é o que o deixa vazio ou cru na tela, então confirme o contexto. Para padronizar o Crocoblock em vários sites sem licença avulsa, conheça os [planos da FULL](https://full.services/planos), e para continuar aprendendo, o [FULL Academy](https://full.services/academy/) reúne os tutoriais de WordPress em um só lugar.


---

## Metadados Estruturados (Schema.org)

```json-ld
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "TechArticle",
      "@id": "https://full.services/criar-shortcodes-customizados-com-jetengine/#article",
      "headline": "Como criar shortcodes customizados com o JetEngine",
      "description": "Criar shortcodes customizados com o JetEngine é transformar uma listagem ou um dado dinâmico em um código curto que você insere em qualquer página, widget ou editor, sem repetir a montagem a cada uso.",
      "url": "https://full.services/criar-shortcodes-customizados-com-jetengine/",
      "datePublished": "2026-06-21T09:00:00-03:00",
      "dateModified": "2026-06-21T09:00:00-03:00",
      "inLanguage": "pt-BR",
      "articleSection": "Elementor Pro",
      "keywords": [
        "criar shortcodes customizados com jetengine",
        "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/criar-shortcodes-customizados-com-jetengine/"
      },
      "wordCount": 2720,
      "citation": [
        {
          "@type": "CreativeWork",
          "name": "WordPress Developer Docs",
          "url": "https://developer.wordpress.org/",
          "publisher": {
            "@type": "Organization",
            "name": "WordPress Developer Docs"
          }
        },
        {
          "@type": "CreativeWork",
          "name": "WordPress.org Plugins",
          "url": "https://wordpress.org/plugins/",
          "publisher": {
            "@type": "Organization",
            "name": "WordPress.org Plugins"
          }
        }
      ]
    },
    {
      "@type": "FAQPage",
      "@id": "https://full.services/criar-shortcodes-customizados-com-jetengine/#faq",
      "isPartOf": {
        "@id": "https://full.services/criar-shortcodes-customizados-com-jetengine/#article"
      },
      "mainEntity": [
        {
          "@type": "Question",
          "@id": "https://full.services/criar-shortcodes-customizados-com-jetengine/#faq-q1",
          "name": "Preciso programar para criar um shortcode com o JetEngine?",
          "inLanguage": "pt-BR",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Não. O JetEngine gera o shortcode a partir das suas listagens pela interface, sem você escrever código de shortcode na mão. Use o JetEngine quando quer reaproveitar conteúdo dinâmico sem programar. Reserve o código manual para lógicas muito específicas que o plugin não cobre, porque para a maioria dos casos o shortcode pronto do JetEngine já resolve, e o seu cuidado deve ir para o contexto onde ele é colado, não para a programação do shortcode em si.",
            "author": {
              "@id": "https://full.services/#org"
            }
          }
        },
        {
          "@type": "Question",
          "@id": "https://full.services/criar-shortcodes-customizados-com-jetengine/#faq-q2",
          "name": "Por que o shortcode aparece como texto bruto na página?",
          "inLanguage": "pt-BR",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Quase sempre porque ele foi colado em um lugar que não processa shortcodes ou em um contexto sem os dados que ele espera. Quando o WordPress não interpreta o código, ele mostra o shortcode literal; quando faltam os dados, ele renderiza vazio. A causa costuma ser o destino errado. Para resolver, cole o shortcode em um campo que aceite shortcodes e garanta o contexto com os dados certos. Prefira testar no front-end, porque é lá que você vê se o código foi interpretado ou apareceu cru na tela.",
            "author": {
              "@id": "https://full.services/#org"
            }
          }
        },
        {
          "@type": "Question",
          "@id": "https://full.services/criar-shortcodes-customizados-com-jetengine/#faq-q3",
          "name": "Como ajusto a quantidade de itens que o shortcode mostra?",
          "inLanguage": "pt-BR",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Você usa os parâmetros que o shortcode do JetEngine aceita, como o que define o número de itens exibidos. Esses parâmetros vão dentro do próprio código do shortcode, permitindo mostrar mais ou menos conteúdo conforme o lugar. Ajuste o valor conforme o espaço e o objetivo de cada destino. Reserve um shortcode com poucos itens para áreas de destaque e um com mais para páginas de listagem, porque o mesmo conteúdo pode precisar de quantidades diferentes dependendo de onde ele aparece no site.",
            "author": {
              "@id": "https://full.services/#org"
            }
          }
        },
        {
          "@type": "Question",
          "@id": "https://full.services/criar-shortcodes-customizados-com-jetengine/#faq-q4",
          "name": "É possível usar o shortcode fora do Elementor?",
          "inLanguage": "pt-BR",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Sim, e essa é uma das vantagens. O shortcode do JetEngine funciona em qualquer lugar que aceite shortcodes, como o editor padrão do WordPress, um widget de texto ou outro construtor. Isso permite reaproveitar a listagem fora do Elementor, onde montar visualmente não é uma opção. Use o shortcode justamente nesses contextos sem construtor visual. Reserve a montagem direta no Elementor para quando o conteúdo é único daquela página, porque para reúso em editores simples o shortcode é a forma mais prática de trazer o conteúdo dinâmico.",
            "author": {
              "@id": "https://full.services/#org"
            }
          }
        },
        {
          "@type": "Question",
          "@id": "https://full.services/criar-shortcodes-customizados-com-jetengine/#faq-q5",
          "name": "Quando vale um shortcode em vez de montar a listagem no construtor?",
          "inLanguage": "pt-BR",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Vale quando o mesmo conteúdo dinâmico se repete em vários lugares ou precisa aparecer fora do construtor visual. O shortcode permite inserir a listagem em páginas diferentes ou em editores simples com um código só, sem remontar nada. Prefira o shortcode para reúso e para contextos sem construtor. Reserve a montagem direta no Elementor para conteúdo único de uma página, porque para algo que aparece uma vez só montar visualmente é mais simples, enquanto para o que se repete o shortcode evita refazer o mesmo trabalho a cada lugar.",
            "author": {
              "@id": "https://full.services/#org"
            }
          }
        }
      ]
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://full.services/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Como criar shortcodes customizados com o JetEngine",
          "item": "https://full.services/criar-shortcodes-customizados-com-jetengine/"
        }
      ]
    },
    {
      "@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/criar-shortcodes-customizados-com-jetengine/#howto",
      "isPartOf": {
        "@id": "https://full.services/criar-shortcodes-customizados-com-jetengine/#article"
      },
      "name": "Passo a passo: criar shortcodes customizados com jetengine",
      "description": "Guia passo a passo sobre criar shortcodes customizados com jetengine para WordPress.",
      "url": "https://full.services/criar-shortcodes-customizados-com-jetengine/",
      "totalTime": "PT30M",
      "author": {
        "@type": "Organization",
        "@id": "https://full.services/#org"
      },
      "step": [
        {
          "@type": "HowToStep",
          "position": 1,
          "name": "Passo 1: Defina o que o shortcode vai exibir",
          "text": "Decida o conteúdo dinâmico que o shortcode vai renderizar, uma grade de produtos, uma lista de posts ou o valor de um campo, porque é essa definição que orienta toda a criação. Pense em onde esse conteúdo vai aparecer e quantas vezes se repete, conforme a <a href="https://wordpress.org/plugins/">referência dos plugins do WordPress</a> sobre shortcodes. Saber o objetivo evita criar um shortcode que não serve ao uso real. Esse passo dá direção: um shortcode bem definido nasce com um propósito claro de reúso, então pense no conteúdo e no contexto antes de montar a listagem, porque é mais fácil acertar a fonte de dados quando você já sabe onde e como o resultado vai ser usado na página."
        },
        {
          "@type": "HowToStep",
          "position": 2,
          "name": "Passo 2: Crie a listagem no JetEngine",
          "text": "Monte a listagem que o shortcode vai exibir, definindo o Listing Item e a fonte de dados, porque é essa listagem que o shortcode vai renderizar onde for colado. Configure como cada item aparece e de qual conteúdo a listagem puxa, um Custom Post Type ou outra fonte. Ajuste a aparência da listagem para o resultado final. Confirme que a listagem funciona dentro do JetEngine antes de gerar o código. Esse passo cria a base do shortcode: o código curto é só um atalho para essa listagem, então ela precisa estar montada e funcionando primeiro, porque um shortcode aponta para uma listagem que já deve existir e exibir o conteúdo corretamente."
        },
        {
          "@type": "HowToStep",
          "position": 3,
          "name": "Passo 3: Gere o shortcode da listagem",
          "text": "No JetEngine, gere o shortcode correspondente à listagem, copiando o código que ele oferece para inserção, porque é esse código que você vai colar onde quiser o conteúdo. O JetEngine entrega o shortcode pronto, muitas vezes com parâmetros que você pode ajustar, como a quantidade de itens. Anote os parâmetros disponíveis para personalizar a saída. Guarde o shortcode para usar nos próximos passos. Esse passo transforma a listagem em um atalho reutilizável: a partir do shortcode, o mesmo conteúdo pode aparecer em qualquer lugar que aceite código, sem você remontar a listagem a cada uso, que é justamente a vantagem do método."
        },
        {
          "@type": "HowToStep",
          "position": 4,
          "name": "Passo 4: Insira o shortcode no destino",
          "text": "Cole o shortcode no lugar onde o conteúdo deve aparecer, uma página, um widget de texto ou um bloco de shortcode no construtor, porque é a inserção que faz o conteúdo dinâmico se renderizar ali. Garanta que o contexto tem os dados que o shortcode espera, especialmente se ele depende do post atual. Ajuste os parâmetros do shortcode conforme o caso, se houver. Se o JetEngine não conecta com o Elementor e o shortcode não renderiza no construtor, veja como corrigir o <a href="https://full.services/wp-fixer/corrigir-conexao-jetengine-elementor/">erro de conexão entre JetEngine e Elementor</a>. Esse passo coloca o conteúdo no ar, então confirme o contexto certo antes de publicar."
        },
        {
          "@type": "HowToStep",
          "position": 5,
          "name": "Passo 5: Teste a renderização do shortcode",
          "text": "Abra a página no front-end e confirme que o shortcode renderiza o conteúdo esperado, e não o código bruto nem um espaço vazio, porque só o teste real prova que ele funciona no contexto. Verifique se a listagem aparece com os dados certos e a aparência prevista. Teste no celular, já que a renderização pode diferir. Se um conflito de campos personalizados entre o ACF e o JetEngine atrapalhar os dados, veja como corrigir o <a href="https://full.services/wp-fixer/corrigir-conflito-custom-fields-acf-jetengine/">conflito de Custom Fields entre ACF e JetEngine</a>. Esse passo valida o reúso: um shortcode que renderiza certo em uma página vai renderizar igual em qualquer outra com o mesmo contexto. <p class="wp-caption-text">Legenda: cada passo prepara o reúso, da listagem ao shortcode renderizado na página.</p> Os três erros mais comuns ao criar shortcodes são colar o código em um contexto sem dados, esquecer os parâmetros e usar o shortcode onde o construtor seria melhor. O primeiro é o mais frequente: inserir um shortcode que depende do post atual em um lugar sem esse contexto faz ele renderizar vazio ou mostrar o código bruto na tela. O segundo erro é ignorar os parâmetros que o"
        }
      ]
    }
  ]
}
```
