Os tipos de mensagens personalizadas do WordPress são recursos poderosos. Eles são o que eleva o WordPress de uma humilde ferramenta de blog para um sistema de gerenciamento de conteúdo, e lhe dão a flexibilidade que você precisa para criar um site personalizado.

Mas eles podem causar confusão: o que são tipos de post personalizado WordPress exatamente? Como diferem dos posts e páginas padrão? Como é que as crias? E uma vez que você criou um tipo de post personalizado, como você adiciona a ele, exibi-lo em seu site, e como ele é armazenado pelo WordPress?

Neste artigo, vou mostrar-lhe exatamente como funcionam os tipos de mensagens personalizadas do WordPress. Vou compará-los com os tipos de mensagens com que estás mais familiarizado, ensinar-te a criá-los e mostrar-te como usar ficheiros de modelos de temas para os mostrar no teu site.

Vamos começar!

O que são tipos de publicação personalizadas no WordPress?

Provavelmente é mais fácil explicar o que são tipos de mensagens personalizadas no WordPress, explicando um conceito mais amplo: tipos de mensagens.

Os tipos de publicação são formas de categorizar diferentes tipos de conteúdo no WordPress. Estou assumindo que você já está familiarizado com os dois tipos de posts mais comuns: posts e páginas. Mas o que você pode não saber é que o WordPress também vem empacotado com alguns outros tipos de mensagens.

Tipos de lançamento que vêm junto com o WordPress

O WordPress vem com sete tipos de mensagens:

  • Mensagens
  • Páginas
  • Anexos
  • Revisões
  • Menus de navegação
  • CSS personalizado
  • Alterações

É provável que você nunca tenha ouvido falar de conjuntos de alterações e você pode usar CSS personalizado em seu site, mas não ocorreu com você que estes podem ser tipos de mensagens.

Para a maioria dos usuários e desenvolvedores do WordPress, os únicos tipos de posts com os quais você precisa se preocupar são os cinco primeiros: posts, páginas, anexos, revisões e menus de navegação.

Vamos dar uma olhada em cada um desses tipos de post para que possamos entender mais sobre eles.

Tipos de publicação do WordPress: Mensagens

O “post” é o tipo de post que você mais usará no WordPress. Os posts são conteúdos dinâmicos: concebidos para serem actualizados regularmente. Você pode adicionar categorias e tags a elas, o que significa que elas serão exibidas em várias páginas de arquivo e também aparecerão na sua página inicial ou na página do seu blog. Normalmente, as suas mensagens constituirão a maior parte do conteúdo do seu site.

Nota: No WordPress, “post” significa duas coisas. No banco de dados, um post é um post de qualquer tipo, então ele incluirá páginas, anexos e tudo o mais. Quando a maioria de nós fala sobre posts, queremos dizer os posts em nosso blog, que pertencem ao tipo “post”.

Tipos de publicação do WordPress: Páginas

Se você já tem um site WordPress, as páginas são o outro tipo de conteúdo que você já conhece. São conteúdos estáticos, concebidos para durar mais tempo do que os posts e para fornecer informações sobre os tipos de coisas que não mudam com tanta frequência. Bons exemplos são os seus dados de contacto ou a página “sobre nós” num website empresarial.

As páginas não podem ter categorias ou tags e não são projetadas para serem exibidas em páginas de arquivo. Em vez disso, os visitantes terão acesso a eles através do seu menu de navegação.

Nota: Na linguagem da internet, uma página pode significar qualquer tipo de página do seu site. Quando a Internet se desenvolveu pela primeira vez, consistia apenas em conteúdo estático que tinha de ser codificado directamente através da escrita de HTML. Assim, uma “página da web” pode ser qualquer tipo de página do seu site, incluindo uma página estática em termos do WordPress, uma página de arquivo ou um post. Neste artigo, quando me refiro a páginas, quero dizer a página em termos WordPress, ou seja, uma página estática. Às vezes eu vou me referir a páginas de arquivo, mas eles não são páginas no sentido de que você criar uma página para armazená-los. O WordPress faz isso por si.

Tipos de publicação do WordPress: Anexos

Um anexo é um item de mídia que foi carregado em seu site. No banco de dados do WordPress, este não é o arquivo de mídia em si, mas os dados relacionados a ele. Assim, cada anexo terá um ID e metadados exclusivos, como seu título, descrição, texto ALT e muito mais.

Cada anexo também tem sua própria página de anexo com uma URL exclusiva. Você pode encontrar o URL para isso através da tela de edição de mídia para aquele anexo:

A tela de edição de anexos no WordPress
A tela de edição de anexos no WordPress

Os anexos podem ser de qualquer tipo de upload: imagens, vídeos, arquivos pdf e muito mais. Você pode acessá-los e editá-los através do item Mídia no menu de administração do WordPress, ou pode carregá-los diretamente nas publicações/páginas quando estiver editando-os. Qualquer anexo que você carregar para uma publicação estará disponível para edição e visualização através do menu Mídia.

Tipos de publicação do WordPress: Revisões

Agora estamos a chegar aos tipos de colunas um pouco mais obscuros.

Toda vez que você salvar uma nova versão de uma mensagem, página, anexo ou qualquer outro tipo de mensagem personalizada, o WordPress criará uma revisão para refletir essa versão da mensagem (ou página, etc.).

Você pode visualizar as revisões de qualquer postagem ou página do seu site indo para a tela de edição relevante e abrindo a ficha Documento no lado direito. Aqui você verá uma notificação dizendo quantas revisões este post tem. Abaixo você pode ver uma captura de tela de um post que estou editando que atualmente tem cinco revisões.

Revisões na tela de processamento de posts do WordPress
Revisões na tela de processamento de posts do WordPress

Se não estiver a usar o editor do Gutenberg, pode aceder às revisões deslocando-se para a parte inferior do ecrã de edição e encontrando uma lista delas aqui:

Revisões na tela clássica de edição de posts do WordPress
Revisões na tela clássica de edição de posts do WordPress

Se você clicar na caixa Revisões, você será levado a uma tela exibindo suas duas últimas versões do seu post. Daqui você pode rever as revisões e reverter para uma versão anterior do post.

WordPress irá criar um monte de revisões para o seu site ao longo do tempo, o que significa que o banco de dados estará cheio deles (aqui está o guia do Kinsta sobre como lidar com revisões para um desempenho mais rápido)! Mas as revisões são um tipo de mensagem como qualquer outra, e são armazenadas da mesma forma – mais das quais em breve.

Tipos de publicação do WordPress: Menus de navegação

Os menus de navegação, ou mais precisamente, os itens nos seus menus de navegação, são também um tipo de mensagem.

Cada item do seu menu de navegação é armazenado como um item no banco de dados. Graças aos seus metadados, o WordPress sabe que este é um item do menu de navegação, exatamente onde no menu de navegação ele deve aparecer, e para onde ele se liga.

Você não pode editar itens do menu de navegação da mesma forma que faria com outros tipos de mensagens. Em vez disso, pode editá-las através do Customizer ou do ecrã Menus.

Tipos de publicação do WordPress: CSS personalizado

Se você adicionar CSS personalizado através do Customizer, seu trabalho será salvo usando este tipo de post personalizado. Uma nova mensagem (do tipo “CSS personalizado”) será salva para CSS personalizado relacionado a cada tema em seu site, e o WordPress só usará a mensagem para o tema atualmente ativo.

Tipos de publicação do WordPress: Alterações

As alterações são um pouco como revisões, mas em vez de se aplicarem a posts, elas se aplicam ao Customizer. Quando você faz uma modificação usando o Customizer, ela será salva como um conjunto de modificações, de forma semelhante a um esboço.

Agora que já trabalhámos em todo o espectro de tipos de mensagens do WordPress, vamos avançar para saber mais sobre os tipos de mensagens personalizadas do WordPress.

A diferença entre um lançamento e um tipo de lançamento personalizado

Vamos recapitular rapidamente: um post pode ser uma de duas coisas.

Um tipo de mensagem é um tipo de mensagem (no sentido mais amplo) a que pertence um determinado item de conteúdo. E um “post” é um tipo de post, como é “página”, “anexo” ou qualquer tipo de post personalizado que você registrar (eu sei, é confuso, mas vou cavar mais fundo em um minuto).

Por outro lado, seu tipo de post personalizado não é um tipo de “post” no sentido de um post de blog. É um tipo de post no sentido de todos os posts (de todos os tipos de post) que são armazenados no banco de dados.

Tipos de publicação personalizadas do WordPress: Usos comuns

Agora sabemos o que é um tipo de mensagem personalizada. Mas quando é que precisas de usar um? A resposta é sempre que você quiser adicionar conteúdo ao seu site que não se encaixe em um dos tipos de publicação incorporados.

Alguns exemplos comuns de tipos de mensagens personalizadas são:

Estes são alguns dos casos de uso mais comuns, mas não são os únicos. Meu conselho ao decidir se usar um tipo de mensagem personalizada para qualquer novo tipo de conteúdo é fazer esta pergunta a si mesmo:

Eu quero exibir meu novo conteúdo na página principal do blog ou como uma página estática, ou eu quero ser capaz de mostrá-lo em uma página de arquivo separada?

Em alguns casos, usar uma categoria para separar seu novo conteúdo pode ser suficiente: talvez você esteja executando um blog e queira incluir estudos de caso que você pode exibir em sua própria página (usando uma categoria “Estudo de caso” que você cria) e também mostrar no blog principal. Mas se você quiser manter seu novo conteúdo separado dos posts do seu blog, então faz sentido criar um tipo de post personalizado para ele.

Como os tipos de publicação são armazenados pelo WordPress

As mensagens de um tipo de mensagem personalizada são armazenadas da mesma forma que as mensagens padrão (e páginas, etc.) são armazenadas. Vamos dar uma olhada nisto com mais detalhes.

Seu site WordPress tem um número de tabelas de banco de dados para armazenar conteúdo e configurações. O número mínimo de tabelas é 12, mas seu site pode ter mais se estiver rodando Multisite ou se você tiver um plugin instalado que adiciona mais tabelas.

Tabelas de banco de dados WordPress
Tabelas de banco de dados WordPress

Na captura de tela acima, você pode ver que existem duas tabelas que parecem ter algo a ver com posts: wp_posts e wp_postmeta.

A tabela wp_posts armazena todo o conteúdo das suas mensagens, de todos os tipos de mensagens. Então não importa se estamos falando de um post de blog, uma página, uma revisão, um anexo ou um tipo de post personalizado: todos eles serão armazenados nesta tabela wp_posts.

O WordPress sabe que tipo de mensagem cada mensagem é porque ela terá um valor no campo post_type da tabela wp_posts. Esse valor corresponderá ao nome do tipo de mensagem. Então, quando você adicionar um novo post no blog, o WordPress adicionará um post na tabela wp_posts, com o post_type de “post.” E se você registrar um tipo de post personalizado chamado “produto,” por exemplo, cada novo produto que você criar irá gerar uma linha na tabela wp_posts com “produto” como o valor no campo post_type.

A tabela wp_postmeta é para armazenar metadados sobre as suas mensagens. Tem quatro campos:

  • meta_id: o id deste item na tabela wp_postmeta.
  • post_id: a postagem a que corresponde este item de metadados. Um post pode ter várias linhas na tabela wp_postmeta.
  • meta_key: a chave para este tipo particular de metadados. Por exemplo, para uma página estática, uma chave potencial pode ser page_template, que anotaria qual modelo de página está sendo usado.
  • meta_value: o valor para o campo. Se uma página (para usar este exemplo novamente) estiver usando o modelo de página padrão, o meta_valor aqui seria ‘default’.

Assim, os tipos de metadados armazenados para um determinado post serão diferentes dependendo do tipo de post.

Você não precisa se preocupar com quais dados são armazenados em wp_posts e quais são armazenados em wp_postmeta: mas é útil entender que todos os tipos de mensagens são armazenados no mesmo lugar, pois isso significa que o WordPress pode trabalhar com todos eles da mesma maneira.

Como os tipos de postagem personalizadas interagem com taxonomias personalizadas e campos personalizados

Antes de passarmos à análise de como você registraria um tipo de mensagem personalizada no WordPress, vamos identificar como um tipo de mensagem personalizada irá interagir com outros tipos de conteúdo personalizado, ou seja, taxonomias personalizadas e campos personalizados.

Taxonomias personalizadas

Taxonomias no WordPress são utilizadas para categorizar lançamentos de qualquer tipo de lançamento. Para lançamentos padrão, as duas taxonomias utilizadas são categorias e tags.

Ao registrar seu tipo de lançamento personalizado, você pode optar por atribuir qualquer taxonomia ou taxonomia existente a ele. Você pode adicionar a taxonomia de “categoria” a ela ao registrar a taxonomia. Vou mostrar-lhe como fazer isso em breve quando eu demonstrar a técnica para criar um tipo de post personalizado.

Alternativamente, é possível criar taxonomias completamente novas para o tipo de lançamento personalizado, que também é uma abordagem comum.

Assim, por exemplo, se você está criando um tipo de postagem de “produto” para um site de comércio eletrônico, você pode criar uma taxonomia de “departamento” para classificar seus produtos em departamentos de sua loja.

Se você está criando um tipo de mensagem de “evento”, você pode criar uma taxonomia de “tipo de evento”, que pode especificar se este é um concerto, uma leitura de poesia ou uma noite de comédia.

As taxonomias que você criar dependem de você e dependerão da forma como você deseja ordenar e exibir suas postagens a partir de seu tipo de postagens personalizado.

Campos personalizados

Outro tipo de conteúdo personalizado que você tem no WordPress são os campos personalizados, também conhecidos como metadados de publicação. Os campos personalizados são metadados adicionais que você pode adicionar a qualquer mensagem, desde que o tipo de mensagem os suporte. Quando você registra um tipo de mensagem personalizada, você pode incluir suporte de campo personalizado com esta linha:

supports => array( 'custom-fields' );

Isto é passado como um array para que você possa adicionar suporte para várias opções.

Portanto, se você quiser adicionar metadados ao seu tipo de mensagem personalizada, como tamanhos ou cores em uma loja de roupas com o tipo de mensagem “produto”, você deve usar um campo personalizado para fazer isso.

Os campos personalizados são diferentes das taxonomias personalizadas porque você não os usaria para gerar uma página de arquivo.

Aqui está um exemplo para uma loja de roupa. Você teria uma página de arquivo para cada exemplo de taxonomia de “departamento”, por exemplo, “Mulheres”, “Homens”, etc. Imagine que você também tem um campo personalizado chamado “Tamanho”. Você não criaria uma página de arquivo para cada tamanho, pois não é algo que seus clientes esperariam ver.

Siga esta regra para ajudá-lo a determinar se você precisa usar uma taxonomia personalizada ou um campo personalizado para adicionar mais dados ao seu post: você precisará exibi-lo em uma página de arquivo?

Eu vou mostrar-lhe como gerar páginas de arquivo para o seu tipo de post personalizado e taxonomias personalizadas mais tarde.

Como Adicionar um Tipo de Mensagem Personalizado com um Plugin

Então você sabe quais são os tipos de mensagens personalizadas e sabe que precisa de uma para o seu site: como adicioná-la?

Existem duas maneiras: usando um plugin e codificando-o manualmente. Vamos começar com a rota do plugin.

Existem dois tipos de plugins que você pode usar para registrar um tipo de mensagem personalizada: o primeiro irá registrar um tipo de mensagem personalizada para adicionar funcionalidade que vem com o plugin, e o segundo irá fornecer uma interface que você pode usar para criar seu próprio tipo de mensagem.

O primeiro exemplo inclui uma variedade de plugins, incluindo plugins de comércio eletrônico, plugins de eventos e muito mais. Vamos começar com um dos plugins mais populares do WordPress, o WooCommerce.

Como usar o WooCommerce para registrar tipos de mensagens personalizadas

WooCommerce é um exemplo de um plugin que registra um tipo de post personalizado para trabalhar. Neste caso, é o tipo de postagem “produto”.

Produtos listados em WooCommerce
Produtos listados em WooCommerce

O WooCommerce também registra algumas taxonomias personalizadas e campos personalizados para você organizar sua loja, incluindo categorias de produtos e tags de produtos. Estas são diferentes das categorias e tags que você usaria para os posts do seu blog.

Como Usar o Plugin do Calendário de Eventos para Registar Tipos de Mensagens Personalizadas

O plugin Calendário de Eventos é outro plugin que usa um tipo de mensagem personalizada. Neste caso, é o tipo de mensagem “evento”.

Eventos criados pelo plugin Calendário de Eventos
Eventos criados pelo plugin Calendário de Eventos

O plugin adiciona uma taxonomia que é exclusiva para eventos: “categoria de evento”. Ele também aplica tags normais a eventos, para que você possa usar as mesmas tags que usa nos posts do seu blog.

Como utilizar o WP Google Maps para registrar tipos de mensagens personalizadas

Tal como o WooCommerce e o Calendário de Eventos, o WP Google Maps é um plugin de mapa WordPress que registra um tipo de mensagem personalizada para os seus mapas.

Um mapa criado pelo plugin WP Google Maps
Um mapa criado pelo plugin WP Google Maps

O tipo de mensagem “mapa” funciona de forma diferente do tipo de mensagem do produto ou do evento no plugin anterior porque você não exibiria uma página de arquivo de todos os seus mapas: em vez disso, o plug-in fornece um atalho para cada mapa que você criar, que você incorpora em uma mensagem ou página do seu site. Mas embora não possas ver mapas da mesma forma que vês outros tipos de mensagens, continua a ser um tipo de mensagem.

Como Usar o Plugin de UI do Tipo Post Personalizado

Se você quiser registrar seu próprio tipo de mensagem personalizada em vez de um que é parte da funcionalidade mais ampla fornecida por um plugin como o WooCommerce, você pode usar um plugin que fornece uma interface projetada para facilitar o registro de um tipo de mensagem personalizada.

Um desses plugins é o plugin Custom Post Type UI.

O plugin UI Custom Post Type
O plugin UI Custom Post Type

Este plugin permite-lhe registrar os seus próprios tipos de mensagens personalizadas utilizando os ecrãs de administração, sem ter de escrever qualquer código.

Ele lhe dá um conjunto de telas que permitem que você adicione todos os elementos de registrar um tipo de mensagem que você adicionaria ao usar a função register_post_type(). Para adicionar um novo tipo de post com o plugin, vá até CPT IU > Add/Edit Post Types.

Adicionar um tipo de mensagem com o plugin UI Tipo de mensagem personalizada
Adicionar um tipo de mensagem com o plugin UI Tipo de mensagem personalizada

A partir daqui, você pode adicionar um novo tipo de mensagem ou editar qualquer mensagem existente que tenha registrado.

É possível processar as opções para o tipo de mensagem ou deixá-las nas opções default. Você pode encontrar documentação completa sobre todas as
configurações e opções para um tipo de mensagem no WordPress Codex.

Configurações para o plugin UI Custom Post Type
Configurações para o plugin UI Custom Post Type

Você também pode usar o plugin para registrar uma taxonomia personalizada e atribuí-la ao seu novo tipo de mensagem ou a qualquer tipo de mensagem existente. E quando você usa o plugin para registrar um tipo de postagem, você pode atribuir qualquer taxonomia existente a ele enquanto o faz.

Como Usar o Plugin de PODs para Registrar Tipos de Posts Personalizados

O plugin Pods é outro plugin que lhe dá uma interface projetada para permitir que você registre um tipo de mensagem personalizada sem escrever código.

Pods também permite que você amplie seus tipos de mensagens existentes. Assim, você pode adicionar campos extras a um tipo de lançamento ou taxonomia existente e editar suas configurações.

Criando tipos de mensagens com o plugin Pods
Criando tipos de mensagens com o plugin Pods

O plugin Pods usa um tipo de post (‘pod’) para armazenar todas as suas personalizações, e também permite que você registre seus próprios tipos de post um pouco como o plugin Custom Post Type UI, mas com uma interface que é projetada para guiá-lo através do processo. Isto significa que o plugin pode tornar o processo mais fácil, mas ele adiciona muito mais código ao seu site (e dados ao seu banco de dados) do que se você codificou o tipo de mensagem você mesmo.

Alternativamente, se você prefere não instalar um plugin para gerenciar o processo de registro de seu tipo de post, você pode codificá-lo você mesmo.

Como registrar o seu próprio tipo de publicação personalizada no WordPress

Se você está confortável escrevendo código, você pode tirar vantagem da função register_post_type() para registrar seu tipo de post personalizado. Esta é a forma mais eficiente de o fazer.

As melhores práticas nos dizem para colocar código para um tipo de mensagem personalizada em um plugin, em vez de em seu tema. Isto é porque se você deve mudar seu tema no futuro, você não vai querer perder o tipo de mensagem e todas as mensagens que você criou com esse tipo de mensagem. Isso também significa que se você atualizar seu tema no futuro, você não perderá seu tipo de mensagem.

Vamos trabalhar nas etapas para registrar seu próprio tipo de mensagem personalizada no WordPress.

Criando seu Plugin

O primeiro passo é criar o seu plugin. Na pasta wp-content/plugins do seu site de desenvolvimento ou de teste (não do seu site ao vivo ainda), adicione uma pasta para o seu plugin. Dentro dessa pasta, adicione um arquivo PHP. Vou ligar para o meu kinsta-register-posttype.php.

Dica: Eu sempre gosto de criar um plugin dentro de uma pasta ao invés de apenas adicionar um arquivo plugin à pasta wp-content/plugins. Dessa forma, se eu precisar adicionar mais arquivos ao meu plugin, como incluir arquivos, scripts ou estilos, eu já tenho uma pasta pronta para mantê-los.

Agora no seu novo arquivo php, adicione o texto comentado de abertura para o seu plugin:

<?php
/*
Plugin Name: Register Custom Post Types
Plugin URI: http://rachelmccollin.com
Description: Plugin to register the book post type
Version: 1.0
Author: Rachel McCollin
Author URI:http://rachelmccollin.com
Textdomain: kinsta
License: GPLv2
*/

Isso informa ao WordPress (e ao usuário) algumas informações importantes sobre o plugin:

  • O que se chama
  • Onde você pode encontrar mais informações
  • O que faz
  • O número da versão
  • Quem o desenvolveu, e onde você pode saber mais sobre eles
  • O domínio de texto para internacionalização
  • A licença, que deve ser sempre GPL.

Então seu plugin está agora configurado e se você quiser, você pode ativá-lo nas telas de administração. Ainda não fará nada se o fizeres.

Configuração da função para o tipo de lançamento

Agora vamos começar a criar a função para registrar seu tipo de post. No meu exemplo, vou criar um tipo de post chamado “livro”, como este é para um site de resenhas de livros imaginários. O que você usar será obviamente diferente e dependerá do que você está usando seu tipo de post personalizado para.

Abaixo do texto comentado, adicione isto:

function kinsta_register_post_type() {

}
add_action( 'init', 'kinsta_register_post_type' );

Esta função conterá todo o código para o seu tipo de mensagem personalizada. Você pode querer mudar seu nome para adicionar um prefixo próprio ao invés de kinsta_. É uma boa prática usar um prefixo em todas as suas funções para que você não entre em conflito com o nome de qualquer função fornecida pelo seu tema ou outros plugins que você está executando.

O resto do código será adicionado dentro das chaves dessa função.

Definindo as etiquetas para o seu tipo de postagem personalizada

Agora é hora de definir os rótulos para seu tipo de post personalizado, Dentro desses suportes encaracolados, adicione isso:

$labels = array(
 'name' => __( ‘Books’, ‘kinsta’ ),
 'singular_name' => __( 'Book', ‘kinsta’ ),
 'add_new' => __( 'New Book', ‘kinsta’ ),
 'add_new_item' => __( 'Add New Book', ‘kinsta’ ),
 'edit_item' => __( 'Edit Book', ‘kinsta’ ),
 'new_item' => __( 'New Book', ‘kinsta’ ),
 'view_item' => __( 'View Books', ‘kinsta’ ),
 'search_items' => __( 'Search Books', ‘kinsta’ ),
 'not_found' =>  __( 'No Books Found', ‘kinsta’ ),
 'not_found_in_trash' => __( 'No Books found in Trash', ‘kinsta’ ),
);

Você precisará alterar o seu se o seu tipo de mensagem personalizada não for ‘livro’. Há mais rótulos que você pode usar, mas eu acho que os acima tendem a ser suficientes para as minhas necessidades.

Note que eu estou usando internacionalização em meus rótulos para que eles serão traduzidos para o idioma local para os usuários.

Definindo os argumentos para seu tipo de postagem personalizado

O próximo passo é definir os argumentos, um dos quais será o array de labels que já adicionamos.

Abaixo das etiquetas e ainda dentro dos braquetes, adicione isto:

$args = array(
 'labels' => $labels,
 'has_archive' => true,
 'public' => true,
 'hierarchical' => false,
 'supports' => array(
  'title',
  'editor',
  'excerpt',
  'custom-fields',
  'thumbnail',
  'page-attributes'
 ),
 'taxonomies' => 'category',
 'rewrite'   => array( 'slug' => 'book' ),
 ‘show_in_rest’ => true
);

Vamos dar uma olhada no que todos eles fazem.

  • O argumento das etiquetas é o array de etiquetas que já definimos.
  • 'has_archive' => true habilita um arquivo de tipo de post para o tipo de post personalizado. Este padrão para falso assim que eu gosto de substituí-lo e dar-me a opção de usar um tipo de post arquivo (que eu vou mostrar-lhe como usar em breve).
  • 'public' => true permite que o tipo de mensagem seja incluído nos resultados de pesquisa e nas consultas personalizadas. Novamente, o padrão é falso e isso é algo que eu gosto de substituir.
  • O valor ‘hierárquico’ dependerá de como você deseja usar seu tipo de lançamento personalizado. Se você definir isso como verdadeiro, então o tipo de mensagem se comportará como páginas, com uma hierarquia possível e mensagens pai e filho de qualquer mensagem de seu tipo de mensagem. Se você definir isso como falso, ele vai se comportar como posts, sem uma hierarquia.
  • O array ‘supports’ define uma série de características de tipos de mensagens que você pode ter suporte a esse tipo de mensagem. Gosto de garantir que funcionalidades como imagens em destaque e campos personalizados são activados.
  • O argumento das “taxonomias” define as taxonomias existentes que se aplicam a este tipo de correio. Aqui estou eu a usar a taxonomia de “categoria”. Se você quiser usar uma taxonomia personalizada e ainda não a tiver registrado, basta pular esta linha e então registrar a taxonomia no tipo de mensagem. Se você já registrou uma taxonomia personalizada, você pode adicioná-la ao post usando esta linha.
  • Eu estou usando o argumento “reescrever” porque eu vou dar à taxonomia um nome que é diferente do que eu quero usar para sua lesma. Explicarei isto em mais detalhes em breve.
  • ‘show_in_rest’ => true assegura que o tipo de mensagem está disponível para a API REST e a interface Gutenberg. Ele padrão para falso que não faz sentido para mim – Eu quero que todos os meus tipos de postagem para usar a mesma interface de edição!

Portanto, estes são todos os argumentos apresentados. Mas ainda não registramos o tipo de correio. Está na hora de resolver isso.

Adicionando a função register_post_type()

O passo final é puxar tudo isso junto na função register_post_type().

Abaixo dos seus argumentos, e ainda dentro das chaves, adicione isto:

register_post_type( ‘kinsta_book', $args );

Isso registra o tipo de post ‘kinsta_book’, com os argumentos que já definimos.

Agora você pode achar mais fácil entender porque eu usei o argumento ‘reescrever’ antes. Eu gosto de adicionar um prefixo aos nomes dos meus tipos de mensagens, para que eu possa ter certeza de que eles não vão entrar em conflito com quaisquer tipos de mensagens adicionadas por plugins de terceiros, mas eu não quero que o prefixo seja tornado público.

Por padrão, quando o WordPress exibe um exemplo do seu tipo de publicação, ele usará o nome do tipo de publicação no URL. Então meu livro chamado ‘Meu Livro Maravilhoso’ teria uma url de mysite.com/kinsta_book/meu maravilhoso-livro. Eu não quero isso, então eu uso que ‘reescrever’ argumento para alterar a URL para mysite.com/book/meu maravilhoso livro. Parece muito melhor, não é?

Agora salve seu arquivo e ative seu plugin no administrador do WordPress. Você verá que um novo tipo de mensagem apareceu no menu de administração.

Os "livros" postam tipo nas telas de administração
Os “livros” postam tipo nas telas de administração

O tipo de postagem está agora registrado e pronto para você usar em seu site. Tome algum tempo para adicionar alguns posts a ele (posts do seu tipo de post personalizado lembre-se, não posts de blogs – WordPress pode ficar confuso às vezes!) e, em seguida, vamos ver como você pode exibir seus posts do seu tipo de post personalizado no front end do seu site.

Como exibir tipos de mensagens personalizadas do WordPress no seu site

A maioria dos tipos de postagens personalizadas que você adiciona ao seu site funcionará como postagens, o que significa que elas são projetadas para serem exibidas em páginas de arquivo. Talvez você esteja usando uma taxonomia personalizada para exibi-los, ou talvez você tenha adicionado a “categoria” taxonomia como eu tenho.

Alternativamente, se você usou um plugin como o WooCommerce que adiciona tipos de mensagens personalizadas para adicionar funcionalidades específicas ao seu site, então esse plugin pode adicionar algumas páginas específicas (como a “página Shop2”) projetadas para produzir seu tipo de mensagem personalizada.

As quatro opções que você tem para exibir tipos de lançamentos personalizados são:

  • Exibição do lançamento individual (ou seja, o livro, no meu exemplo)
  • Exibindo o arquivo do tipo de lançamento completo, com todos os livros listados.
  • Exibindo um arquivo de taxonomia personalizado, usando uma taxonomia que você registrou para seu tipo de post personalizado.
  • Integração de posts do tipo de post personalizado (por exemplo, livros) no arquivo para uma taxonomia existente, como ‘categoria’, ou na página principal do blog.

Vamos dar uma vista de olhos em cada um destes.

Aviso! Se em algum ponto desse processo você não puder acessar os arquivos ou postagens individuais para seu tipo de mensagem personalizada, é porque o WordPress ainda não escreveu os links permanentes para eles. Para corrigir isso, vá até Configurações > Links Permanentes e clique no botão Salvar alterações. Isso dirá ao WordPress para verificar se há novos tipos de mensagens e criar as URLs para eles.

Exibição do arquivo do tipo de lançamento

A primeira opção que você tem é criar uma página de arquivo de todos os posts em seu arquivo de tipo de post personalizado.

Se você definiu ‘has_archive’ como true quando você estava registrando o tipo de publicação, o WordPress irá gerar automaticamente uma página de arquivo para o seu tipo de publicação. Você pode adicionar isso ao seu menu de navegação usando o Customizer.

Adicionando seu tipo de arquivo de postagem ao menu

Abra o Personalizador e selecione a opção Menus. Selecione seu menu principal e clique no botão Adicionar itens para adicionar itens extras ao seu menu.

Adicionando um item de menu no customizador do WordPress
Adicionando um item de menu no customizador do WordPress

Seleccione o seu tipo de mensagem a partir das opções que aparecem e não clique na seta para baixo à direita do seu nome. Isso exibirá uma lista que inclui cada uma das mensagens que você adicionou, mais uma opção que no meu caso se chama Todos os livros. Clique nisso e ele será adicionado ao seu menu.

Se você clicar nesse item no menu, poderá editar o rótulo. Prefiro não chamar o meu de “Todos os Livros”, mas apenas “Livros”.

Editar o item de menu Livros
Editar o item de menu Livros

Note que você só pode fazer isso através do Customizer – não é possível na tela Menus. Por isso, certifique-se de que utiliza o Personalizador para adicionar o seu arquivo de tipo de mensagem personalizada ao seu menu.

Customizing do tipo de lançamento Arquivo

O WordPress utilizará a hierarquia de modelos para identificar qual o ficheiro de modelos no seu tema a utilizar para exibir o arquivo de tipo de mensagem personalizado.

A hierarquia de modelos do WordPress
A hierarquia de modelos do WordPress

Se o seu tema tiver um arquivo archive.php, ele usará isso, e se não tiver, usará index.php.

Para processar a saída do arquivo de tipo de lançamento personalizado, é possível criar um arquivo de modelo para o arquivo de tipo de lançamento personalizado.

Para um tipo de mensagem personalizado específico, você precisa criar um arquivo de modelo chamado archive-$posttype.php, onde $posttype é o nome do seu tipo de mensagem. Então, para os meus livros tipo post type, eu criaria um arquivo chamado archive-kinsta_book.php.

A maneira mais fácil de criar este arquivo é fazendo uma cópia do arquivo archive.php em seu tema. Renomeie-o e edite-o para que ele exiba o arquivo do tipo de mensagem da maneira que você deseja.

Exibição de lançamentos individuais

Mensagens únicas criadas usando um tipo de mensagem personalizada também serão mostradas usando o primeiro arquivo de modelo relevante encontrado na hierarquia de modelos.

Você pode ir um pouco mais longe com postagens individuais do que com arquivos: não apenas você pode criar um arquivo de modelo para o tipo de mensagem (single$posttype.php), mas você também pode criar um arquivo para uma mensagem específica desse tipo usando o slug para essa mensagem (single-$postype-slug.php).

Então, se eu adicionei Great Expectations ao meu site de resenhas de livros, eu poderia criar um arquivo para todas as resenhas de livros chamados single-kinsta_book.php, ou eu poderia criar um arquivo alvo para aquele livro chamado single-kinsta_book-great-expectations.php. Se eu não criasse nenhum desses arquivos, o WordPress seria padrão para usar single.php ou (se isso não existisse) singular.php ou index.php.

Adicionando tipos personalizados do borne à página principal do blogue

Por defeito, a página principal do seu blogue incluirá apenas o tipo de mensagem ‘post’. Mas e se você também quisesse incluir seu tipo de post personalizado nessa página, misturado com os posts do blog?

Você pode fazer isso usando o gancho pre_get_posts no WordPress.

No seu plugin onde você registrou o tipo de post, adicione isso:

<?php
function kinsta_books_on_blog_page() {
 
 if ( $query->is_home() && $query->is_main_query() ) {
  $query->set( ‘post_type', array( ‘post’, ‘kinsta_book’ );
 }

}
add_action( 'pre_get_posts', 'kinsta_books_on_blog_page' ); ?>

Isso verifica se estamos na página inicial (que é a página do blog, mesmo que não seja a página inicial do seu site) e se a consulta principal está em execução (porque você não quer fazer isso em uma widget, por exemplo). Se assim for, ele adiciona ambos os posts e livros para a consulta.

Note que você tem que incluir o tipo de mensagem ‘post’ no array assim como o novo tipo de mensagem.

Resumo

Os tipos de mensagens personalizadas do WordPress são o recurso que o eleva de uma simples plataforma de blogs para um verdadeiro sistema de gerenciamento de conteúdo. Eles permitem que você crie sites complexos e personalizados que podem atuar como lojas, hubs de referência, sites de mídia ou qualquer coisa que você precise.

Você pode adicionar tipos de publicação personalizados ao seu site do WordPress de uma das três maneiras. Você pode usar um plugin como o WooCommerce que registra um tipo de mensagem personalizada relacionada à funcionalidade do plugin. Você pode usar um plugin como CPT UI ou Pods para adicionar seus próprios tipos de mensagens personalizadas. Ou você pode escrever seu próprio plugin e usar a função register_post_type() para registrar o tipo de mensagem usando código. Qualquer que seja o método utilizado, você poderá obter muito mais do seu site WordPress.

Rachel McCollin

Rachel McCollin has been helping people build websites with WordPress since 2010. She's a huge fan of self-hosted WordPress and wants to help as many people as possible create an awesome website with it.