Desenvolvimento WordPress

As 4 regras da criação de shortcodes no WordPress

Shortcodes no WordPress são largamente utilizados por usuários diversos da plataforma, sejam eles gestores de conteúdo ou desenvolvedores.
Escrito Por Leandro Vieira em outubro de 2016 /6 min de leitura
Conteúdo escrito por humano
shortcode

Shortcode é contrato. De um lado, o editor escreve [algo]. Do outro, uma função PHP precisa reconhecer aquilo e devolver HTML. Quando esse contrato quebra, o time de conteúdo vê colchetes crus na página publicada e abre chamado.

Por isso shortcodes no WordPress continuam sendo usados por perfis muito diferentes: gestores de conteúdo, editores e desenvolvedores. E por isso as regras de registro importam mais do que parecem em operações com muitos editores.

Um shortcode precisa ser interpretado em dois cenários: no editor do WordPress e no código que o interpreta e o renderiza. Esse código pode estar nativamente no WordPress, em temas ou em plugins.

Os shortcodes no editor do WordPress

No editor do WordPress um shortcode é reconhecido pela sua composição: “[” (abertura de colchete), seguido do seu nome, que pode ser composto por letras minúsculas, números e sublinhados, e “]” (fechamento de colchete).

Evite o uso de “-” (hífen) na composição de nomes de shortcodes.

Alguns caracteres estão fora de discussão no nome do shortcode: [, ], <, >, / e &, além de caracteres não imprimíveis como espaço e tabulação. Essa restrição entrou no roadmap da API de shortcodes a partir do WordPress 4.4 e existe por um motivo prático: nome ambíguo confunde o parser e gera output inconsistente na renderização.

A inserção de uma galeria de fotos, por padrão, se dá pelo shortcode “gallery”. Talvez o mais conhecido deles. Outro caso frequente é o embed, que insere vídeos e outros conteúdos externos aceitando largura e altura como atributos. Em versões mais recentes do WordPress os códigos de shortcodes padrão passaram a ser destacados no editor com uma representação visual, o que reduz erro de digitação de quem publica.

Representação visual do shortcode gallery no editor do WordPress

Representação visual do shortcode gallery no editor do WordPress

Funções que interpretam os shortcodes

O código que declara e interpreta um shortcode postado no editor do WordPress é uma função que aceita parâmetros e retorna dados.

Esse retorno é o output desejado, que pode ser personalizado com base nos atributos utilizados, quando suportados. Na prática, o registro segue sempre o mesmo desenho:

add_shortcode( 'apiki_destaque', function( $atts, $content = null, $tag = '' ) {

    $atts = shortcode_atts( array(
        'tipo' => 'padrao',
    ), $atts, $tag );

    return sprintf(
        '<div class="destaque destaque--%s">%s</div>',
        esc_attr( $atts['tipo'] ),
        do_shortcode( $content )
    );

} );

Três coisas acontecem aí: os atributos passam por um default explícito, o valor é escapado antes de ir para o HTML e o conteúdo interno volta pelo return. Nada de echo. Já chegamos nesse ponto.

As regras de sucesso

São quatro. E você, como desenvolvedor ou empresa de desenvolvimento, precisa conhecê-las a fundo para aproveitar ao máximo esse recurso.

  1. A função de callback do shortcode recebe três argumentos. São eles: os atributos do shortcode, o conteúdo (se houver) e o nome do shortcode;

  2. Cada shortcode pode conter somente uma função associada a ele. No caso de conflito, por exemplo um plugin que registrou um shortcode com o mesmo nome, a função associada será sobrescrita. A sua função, ou a do plugin, poderá ficar em desuso. É a ordem de carregamento que define a função a ser utilizada. Prefixe os nomes;

  3. Os nomes de atributos serão sempre convertidos para minúsculos. No entanto, seus valores serão preservados. Adote o padrão de manter tudo em minúsculo, nome e atributos;

  4. Funções associadas a shortcodes não devem, em hipótese alguma, imprimir qualquer tipo de conteúdo. O conteúdo deve ser obrigatoriamente retornado. O não respeito a essa regra acarreta comportamentos inesperados, tipicamente output fora de lugar no topo da página.

O que a API de shortcodes já sinalizou de mudança

Quem mantém código WordPress de longo prazo precisa acompanhar o roadmap da API, não só a sintaxe do dia. O rascunho de roadmap publicado no make.wordpress.org desenhou uma transição gradual, pensada para não quebrar de uma vez os plugins de shortcode existentes.

Os três eixos daquele plano:

  1. Nomes mais restritos (a partir da 4.4). A lista de caracteres proibidos no registro, já citada acima;

  2. Prioridade do filtro do_shortcode (4.5). A ideia era reduzir a prioridade do filtro para resolver o impacto de outros filtros que rodam depois do processamento dos shortcodes. Se o seu output vem correto da função e chega estranho na tela, a suspeita começa aqui;

  3. Abandono do HTML antigo dentro de atributos (4.5 e 4.6). O plano previa tags próprias no lugar da sintaxe antiga usada dentro dos atributos de shortcode, com intensificação na 4.6.

A leitura útil para 2026 é de arquitetura, não de versão: shortcode que depende de HTML embutido em atributo é dívida técnica. Quem escreveu o callback devolvendo markup montado por sprintf, com atributos escapados, atravessou essas mudanças sem chamado aberto.

Por que isso vira problema de operação, e não só de código

Em um site com equipe de marketing, dezenas de editores e publicação diária, shortcode não é detalhe de implementação. É superfície de erro.

Nome sem prefixo colide com plugin. Callback que dá echo desmonta a página. Shortcode registrado dentro do tema desaparece na troca de tema e deixa colchetes crus em centenas de posts antigos. Cada um desses casos custa fila de TI e campanha atrasada.

A regra que usamos aqui na Apiki: shortcode que o conteúdo depende para publicar mora em plugin próprio, com prefixo, output retornado e escapado. Não é preferência de estilo. É previsibilidade de publicação.

Além dessas quatro regras para a criação de shortcodes, você costuma utilizar alguma outra?

Se a sua operação WordPress já acumulou shortcodes órfãos, plugins sobrepostos e chamados recorrentes de conteúdo quebrado, fale com o nosso time para uma avaliação de WP Care.

Leandro Vieira

Uma das grandes referências de WordPress no Brasil, entusiasta e evangelista da plataforma. Fundador e CEO da Apiki, empresa especializada no desenvolvimento web com WordPress.
Qual nota você da para este artigo?
Ruim

O que você achou disso?

Clique nas estrelas

Média da classificação 0 / 5. Número de votos: 0

Nenhum voto até agora! Seja o primeiro a avaliar este post.

Excelente
Artigos Relacionados
Como implementar cabecalhos de cache avancados para blogs

Como implementar cabeçalhos de cache avançados para blogs

Melhores ferramentas de backup automatico para blogs em 2023

Melhores ferramentas de backup automático para blogs em 2023

Construa seu site WordPress sob medida com os maiores especialistas em WordPress da America Latina
Conheça a Apiki

Faça um comentário
Cadastre-se rápido

Fazer Login