O guia definitivo para tipos de postagens personalizadas do WordPress

Publicados: 2024-03-26

Há mais de uma década, tomei a decisão de mudar minha vida e minha carreira de me concentrar exclusivamente no uso do WordPress como minha plataforma de publicação e no CMS para o qual crio plug-ins. Os principais motivos foram a excelente documentação, incluindo inúmeras postagens com trechos e tutoriais, e a facilidade de extensão do WordPress. Para meus casos de uso naquela época, o recurso mais importante para estender o WordPress eram os tipos de postagem personalizados.

Melhorados principalmente com a versão 3 do WordPress em 2010, os Custom Post Types (CPTs) são usados ​​de várias maneiras. Tenho certeza que você os conheceu sem saber. Deixe-me dar uma visão geral dos CPTs, exemplos específicos de como os usei ao longo do tempo, como configurá-los você mesmo e como realizar ainda mais com plug-ins relacionados.

O que são tipos de postagem personalizados?

O núcleo do WordPress vem com vários tipos de postagem. Os mais óbvios são postagens, páginas e anexos.

No WordPress 6.4, existem mais quatro:

  • Revisões
  • Menus de navegação
  • Modelos de bloco
  • Partes do modelo

Curiosidade: comentários não são um tipo de postagem. Acho que se o WordPress não fosse originalmente uma plataforma de blog com comentários como parte central, hoje em dia também os trataríamos como um tipo de postagem.

Como isso pode sugerir, os Post Types nem sempre são óbvios e não necessariamente algo visível no frontend que descreveríamos como “conteúdo”. Eles são mais um grupo de itens relacionados no banco de dados.

Você pode adicionar mais dessas “coisas”, que seriam então chamadas de tipos de postagem “personalizados”.

Não é um termo oficial do WordPress, mas gosto da frase Tipos de “conteúdo” personalizados para qualquer tipo de postagem personalizada visível. Entrarei em alguns exemplos mais tarde.

Por que usar um tipo de postagem personalizado?

WP Mayor usou vários tipos de postagem personalizados ao longo do tempo, como o Lifetime Deals que você pode ver agora.

Eu pessoalmente usei tipos de postagem personalizados para muitas coisas.

As mais comuns são seções de conteúdo separadas em sites. Isso faz mais sentido quando o conteúdo deve ser exibido e se comportar de maneira diferente das postagens e páginas integradas.

Vamos imaginar que WP Mayor também teria um tipo de postagem dedicado a “Notícias”. Apenas registrando esse tipo de postagem personalizada, você teria os seguintes benefícios:

  • Um item “Notícias” distinto no menu do WP Admin.
  • A oportunidade de conceder aos usuários e funções de usuário recursos diferentes para esse tipo.
  • Tenha modelos diferentes para mostrar notícias individuais no frontend.
  • Um arquivo e feed separados para notícias.
  • Metadados de postagem adicionais são armazenados apenas e exibidos para notícias.

Também usei tipos de postagem personalizados para elementos de conteúdo em vários plug-ins. Certa vez, construí uma plataforma de reservas para casas de férias, onde casas, reservas e pagamentos eram, cada um, um tipo de postagem personalizada distinto com atributos exclusivos. É algo que a maioria dos plug-ins de comércio eletrônico para WordPress também fazem.

Em outro caso, eu queria registrar o conteúdo de todos os e-mails enviados. Então, criei um tipo de postagem “Log” com o conteúdo do email e todos os metadados anexados que só eram visíveis com os recursos apropriados no backend do WordPress.

Por fim, o plugin Advanced Ads que desenvolvi originalmente usava um CPT para armazenar o conteúdo do anúncio.

Estes são apenas alguns exemplos de tipos de postagem personalizados. Sei que devo ter esquecido de mencionar muitos outros casos de uso interessantes que conheci ao longo dos anos.

A principal vantagem dos CPTs no WordPress é que eles precisam apenas de algumas linhas de código ou de configuração rápida por meio de um plugin, e o WordPress cuida de grande parte da lógica necessária para gerenciá-los e exibi-los em seu site. Então, vamos direto ao assunto como criar tipos de postagem personalizados no WordPress.

Criando um tipo de postagem personalizado

Os tipos de postagem personalizados podem ser criados manualmente ou por meio de um plugin.

Se você não tem experiência em codificação, os plug-ins tornam muito mais fácil criar tipos de postagem personalizados.

Uma desvantagem de usar um plugin é que seu tipo de postagem personalizada desaparece assim que você exclui o plugin. Embora provavelmente ainda exista no banco de dados, o WordPress não sabe mais sobre isso no frontend ou backend.

Como desenvolvedor que já fez isso dezenas de vezes, ainda prefiro o método manual. No entanto, admito felizmente que também uso plug-ins com interfaces de usuário legais se o WordPress Custom Post Type for usado temporariamente ou para criar uma vitrine para um cliente.

Decisões para tipos de postagem personalizados

Apesar do método que estamos usando para criar nosso tipo de postagem personalizado, precisamos primeiro tomar algumas decisões. Embora teoricamente você possa alterar qualquer um deles posteriormente, isso pode impactar muito seu site e sua configuração, por isso é melhor pensar neles com antecedência.

Público ou não?

A principal decisão sobre os tipos de postagem personalizados é quem deve vê-los e interagir com eles. Com seu código personalizado ou dentro de um plugin, você pode escolher se o CPT ficará visível no frontend, incluindo arquivos e páginas únicas acessíveis diretamente, e se os usuários o encontrarão por meio de pesquisa. Deve aparecer no backend do seu site WordPress com seu item de menu?

Embora um CPT de “Notícias” provavelmente esteja totalmente visível no frontend, um log interno ou algo como pagamentos pode ser restrito a usuários com uma função específica no backend do WordPress.

Hierárquico

Você deve ter notado que os tipos de postagem do WordPress Posts e Pages se comportam de maneira um pouco diferente. As páginas não possuem um arquivo no frontend, mas você pode ter páginas pai e filho.

Esta última é chamada de “hierarquia”, que também é definida ao criar seu próprio tipo de postagem.

Para tipos de postagem hierárquicos, a página de edição oferece a opção de escolher uma página pai e um pedido.

A seção de atributos da página no editor do WordPress mostrando opções para hierarquia de páginas.
Opções de hierarquia ao editar uma página.

A ordem e a página pai podem ser importantes ao criar menus ou listas de páginas automaticamente. A hierarquia também é visível no slug da URL. Se minha página fosse “Solução de problemas” com “Documentação” como página pai, o URL final poderia ser documentation/troubleshooting .

Dica: Se você tiver um CPT com uma hierarquia mais profunda, recomendo usar o plugin Nested Pages para organizar rapidamente as postagens na ordem correta.

Editor de bloco ou clássico

Ao criar um tipo de postagem personalizado, você será questionado se deseja mostrá-lo na “API REST” ou não. Esse termo técnico faz uma coisa crucial: determina se o seu CPT está usando o editor de blocos ou a visualização clássica do editor.

Como regra geral, usar o editor de blocos faz sentido se o seu tipo de postagem for semelhante ao conteúdo normal e você quiser usar blocos do WordPress. Qualquer tipo de postagem personalizada que não precise de uma grande parte da tela para conteúdo deve escolher o editor clássico. Portanto, não deve ser entregue por meio da API REST.

Slugs e estrutura de URL

Outra decisão crítica que você precisa tomar é nomear o slug CPT. Nosso tipo de postagem “Notícias” pode ser referenciado como news no URL, mas se você tiver nomes internos mais sofisticados, talvez queira escolher um formato abreviado para os URLs de front-end.

Esta pode ser uma decisão importante para o seu SEO, então reserve alguns minutos para pensar sobre isso.

Elementos suportados

Dependendo do tipo de postagem que você está construindo, você também pode decidir antecipadamente se deseja ativar o suporte para os seguintes elementos:

  • Títulos (habilitados por padrão)
  • O editor aparecendo (ativado por padrão)
  • Comentários
  • Revisões
  • Autores
  • Trechos
  • Miniaturas

Existem muito mais opções para ajustar. No entanto, os itens acima são os mais importantes a serem considerados antes de usar nosso tipo de postagem personalizada do WordPress.

Crie um tipo de postagem personalizado com um plugin

Com isso em mente, vamos criar tipos de postagem personalizados usando um plug-in e fazer o mesmo manualmente.

Vou usar um dos gratuitos mais populares do wordpress.org: Custom Post Type UI (CPTUI) da WebDevStudios.

Sua interface é bastante simples, com todas as opções que você esperaria de um plugin Custom Post Types. No entanto, também deixa claro que os tipos de postagem personalizados ainda são um conceito abstrato a ser compreendido e não um recurso que um editor normal do WordPress deva mexer sem um conhecimento mais profundo das opções.

Primeira tela com opções ao criar um novo tipo de postagem personalizada do WordPress usando o plugin Custom Post Type UI.
Criando um novo CPT com o plugin Custom Post Type UI.

Dica: Pessoalmente, sou conservador quanto às opções “públicas” para meus CPTs e limito-as tanto quanto possível em relação a quem deve vê-los no frontend e quem deve poder alterá-los no backend. Se necessário, você poderá conceder mais acesso posteriormente.

Vantagens da IU de tipo de postagem personalizada

Há algumas coisas que gosto neste plugin que outras pessoas podem ou não ter.

Normalmente crio meus CPTs manualmente, então sei que escrever os rótulos leva muito tempo. Existem cerca de três dúzias se você quiser ajustar todos eles para mencionar o nome do seu CPT. Como você pode ver na captura de tela acima, o plugin Custom Post Type UI tem uma opção para preencher automaticamente esses rótulos para você. Você ainda pode ajustá-los posteriormente na interface.

Em seguida, posso salvar meu tipo de postagem personalizado e editá-lo mais tarde . Posso até alterar o slug, e o plugin irá então migrar todos os posts desse tipo . Embora eu tente evitar uma situação em que precise disso, é bom saber que isso é possível e controlado pelo plugin.

A UI de tipo de postagem personalizada mantém uma visão geral dos meus tipos de postagem . Embora pareça um pouco complicado, é muito mais fácil de revisar do que o código personalizado. Também gosto de ver a lista dos templates na última coluna.

Uma visão geral dos tipos de postagem personalizados do WordPress criados pelo plugin Custom Post Type UI.
Tipo de postagem personalizada listado.

Esses modelos fazem parte da magia dos tipos de postagem personalizados do WordPress. Se nosso News CPT usasse o slug news , o WordPress procuraria automaticamente um arquivo chamado archive-news.php em seu tema para renderizar a página de arquivo desse tipo de postagem ou single-news.php para uma única página de notícias. Consulte Hierarquia de modelos para obter mais informações.

Gerando código com CPTUI

O recurso que finalmente me fez recomendar o Custom Post Type UI foi a ferramenta para exportar o CPT para o código PHP . Em CPT UI > Tools > Get Code, você encontrará o código PHP para usar em seu plugin ou functions.php . Parabéns aos desenvolvedores do plugin por não prenderem as pessoas.

Isso torna o CPTUI uma ferramenta ideal para desenvolvedores, pois podemos configurar rapidamente um tipo de postagem personalizado por meio da interface e, em seguida, obter o código PHP para usá-lo. Podemos até permitir que nosso cliente configure-o em um local de teste – com todos os rótulos e assim por diante – e depois migre-o para onde for necessário.

A única opção que não consegui encontrar no plugin é remover o tipo de postagem personalizado com todas as suas entidades. Em geral, se você excluir um plugin ou código, as postagens personalizadas permanecerão no banco de dados. No entanto, existem plugins dedicados para limpar isso.

Usando código

Se você é um desenvolvedor e deseja implementar um tipo de postagem personalizado usando código, deixe-me indicar as seções relevantes na documentação do WordPress.

A função principal para registrar um novo tipo de postagem personalizada é a função Register_post_type. Seus parâmetros permitem definir todas as opções que mencionei acima.

Todos os tipos de postagem são armazenados na tabela wp_posts do seu banco de dados. O campo post_type determina a qual entrada pertence um tipo de postagem.

Você pode usar metadados de postagem se o seu tipo de postagem personalizado for mais do que apenas conteúdo. Esses dados são armazenados em wp_postmeta .

A propósito, alguns plugins usam tabelas personalizadas para gerenciar tipos de conteúdo. Não siga esse caminho, a menos que seja realmente necessário, pois você não seria capaz de usar todos os recursos e funções integrados do WordPress que vêm com a API Custom Post Types.

Estenda os tipos de postagem personalizados

Se o seu tipo de postagem personalizada for público, você pode querer personalizá-lo ainda mais. Aqui estão algumas opções.

Campos personalizados e metacaixas

CPTs mais avançados, como eventos ou itens de loja, precisam de mais do que conteúdo. É aqui que os campos personalizados entram em jogo. Eles oferecem campos de entrada para estruturar seus dados de várias maneiras. Por exemplo, um tipo de postagem “Evento” pode precisar de uma data de início e de término ou um local para que os eventos possam ser exibidos e filtrados.

Embora você possa adicionar campos personalizados e metacaixas com código personalizado, um excelente plugin para isso são os conhecidos Campos Personalizados Avançados. Ele tem tantas opções e é tão bem conservado que nem eu, como desenvolvedor, codificaria campos personalizados em meus próprios sites.

Taxonomias Personalizadas

Como o tipo de postagem padrão “Postagens” pode ser ordenado com “Categorias” e “Tags”, você também pode registrar taxonomias para o seu tipo de postagem personalizada.

O plugin Custom Post Type UI que recomendei acima também ajuda você a criá-los.

Gerenciamento de capacidade

Você pode usar plug-ins como Membros para criar uma nova função para autores em seu site que só podem criar e alterar seu novo tipo de postagem personalizada ou ajustar funções de usuário relacionadas existentes. Isso é recomendado se o seu fluxo de trabalho editorial for diferente para cada tipo de postagem.

Trocando tipos de postagem

Atualmente estou reorganizando o conteúdo em uma base de conhecimento interna construída com WordPress. Postagens e páginas têm objetivos muito diferentes aqui. Alguns deles mudaram de objetivo, então eu precisava de uma solução para mudar o tipo de postagem.

Embora eu não recomende fazer isso levianamente com um tipo de postagem pública, não há problema em fazer isso em um site não público com tipos de postagem semelhantes. Para isso, instalei o Post Type Switcher, um excelente plugin que permite fazer isso sem complicações. Após instalá-lo, o plugin irá adicionar uma seção “Tipo de postagem” na tela “Editar postagem”. Você pode usar esta interface para alterar os tipos de postagem conforme necessário.

Conclusão

Ainda considero os tipos de postagem personalizados um recurso crítico que permitiu ao WordPress florescer na última década e além. É a base que transformou nosso CMS favorito de uma simples plataforma de blog em uma ferramenta versátil para gerenciamento de eventos ou compras online.

Ao construir plug-ins usados ​​em muitos sites, ainda encontro códigos para criar novos tipos de postagem. Mas ao construir sites para mim e para clientes, uso plug-ins. Eles tornam a criação e alteração de tipos de postagem personalizados muito mais simples e têm uma interface de usuário muito melhor do que eu jamais poderia construir.