• Pular para navegação primária
  • Skip to main content
  • Home
  • Sobre/About
  • Projetos
  • Fotografia
  • Blog
    • Feed/RSS
  • Boletim/Newsletter
    • Humanist Techology Newsletter
    • Boletín Tecnología Humanista
    • Boletim Tecnologia Humanista

Celso Bessa (sɛwsʊ bɛ:sa)

Prefiro construir pontes a muros

Você está em: Home / blog / tecnologia / WordPress: como usar shortcode em campos customizados (do_shortcode e filtro the_content)

WordPress: como usar shortcode em campos customizados (do_shortcode e filtro the_content)

15 maio, 2018 por Celso Bessa

Shortcodes são códigos especiais usados em conteúdos no WordPress que, quando publicados na parte pública do site, se transformam em conteúdos ou funcionalidades especiais. Por exemplo, um shortcode [button color=”blue”] pode vir a se transformar ou como os grids no Superlumina», que são criados com códigos como [sl_grid columns=”3″].

Mas em diversas situações os usuários tentam usar estes códigos em locais que normalmente não permitiriam estes códigos. E ao invés de aparecer o conteúdo transformado (i.e. o botão ou o grid dos exemplos acima) e mostra o código em si.

Hoje, por exemplo, vi um caso de um site onde a descrição de uma seção/categoria (arquivo archive.php na hierarquia de templates do WordPress) deveria contar também com uma imagem e sua legenda. E ao invés da legenda, aparecia o shortcode para legenda.

Em casos como estes, geralmente é possível usar 2 soluções: a função do_shortcode ou o filtro the_content.

função do_shortcode

do_shortcode( $content, false );

do_shortcode( $content, false );

Esta função recebe um conteúdo em texto (parâmetro $content), verifica e executa todos os shortcodes nele e retorna o conteúdo filtrado. Se o segundo parâmetro for false, ignora shortcodes dentro elementos HTML.

Filtro the_content

apply_filters('the_content', $content);

apply_filters('the_content', $content);

Esta função também recebe um conteúdo em texto (parâmetro $content), e executa todo e qualquer filtro que esteja atrelados a ele, incluindo shortcodes e QUALQUER função que temas e plugins tenham configurado para rodar no the_content.

Particularmente, prefiro usar o do_shortcode quando só quero executar shortcodes. Veja alguns exemplos:

Pegar o conteúdo de um campo customizado (custom field) e executar shortcodes:

do_shortcode( get_post_meta($post_id, 'nome_do_campo', true), false );

do_shortcode( get_post_meta($post_id, 'nome_do_campo', true), false );

Usar shortcode na descrição de uma categoria e executá-los na área pública (front-end)

do_shortcode( term_description( $term_id, $taxonomy ), false );

do_shortcode( term_description( $term_id, $taxonomy ), false );

Neste caso, também pode usar get_term_meta, que funciona de forma similar à get_post_meta

do_shortcode( get_term_meta($term_id, 'nome_do_campo', true), false );

do_shortcode( get_term_meta($term_id, 'nome_do_campo', true), false );

Referências na documentação do WordPress, em inglês:

  • do_shortcode
  • the_content
  • get_post_meta
  • term_description
  • get_term_meta

Estes exemplos também estão disponíveis no Github. Espero ter ajudado

Arquivado em: tecnologia Marcados com as tags: desenvolvimento, do_shortocode, filtros, hooks, programação, shortcodes, the_content, WordPress

Sobre Celso Bessa

Prefiro construir pontes à muros. Cidadão, tecnologista de interesse público, consultor em cibersegurança, Media Democracy Fund fellowship alumni e fundador da Tecnologia Humanista.

Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (exceto fotografias com produto de terceiros ou pessoas)
Otimizado pela WoWPerations e hospedado na Digital Ocean
(Assinando Digital Ocean através deste link do programa indicação, você ganha crédito de 100 dólares para serem utilizados em até 60 dias, e eu ganho uma pequena comissão)