Custom Post Types
- O que são Custom Post Types (CPTs) no WordPress?
- Casos de Uso e Benefícios dos Custom Post Types
- Métodos para Criar Custom Post Types
- Práticas Recomendadas para Custom Post Types
- O que são Taxonomias Personalizadas?
- Criando e Gerenciando Taxonomias Personalizadas
- Como Utilizar CPTs no Editor de Blocos (Gutenberg)
- Blocos Personalizados para CPTs
Os Custom Post Types são uma ferramenta poderosa para organizar e apresentar diferentes tipos de conteúdo no WordPress.
Neste guia, exploraremos diversos casos de uso práticos e os benefícios de implementar Custom Post Types em seu site.
Casos de Uso dos Custom Post Types
1. Portfólio de Projetos:
- Descrição:
Um designer, fotógrafo ou desenvolvedor pode utilizar um Custom Post Type “Projetos” para destacar trabalhos realizados. Cada projeto pode ser detalhado individualmente com imagens, descrições e tecnologias utilizadas. - Benefícios:
Melhora a organização dos projetos, permitindo aos visitantes do site filtrar e visualizar trabalhos específicos com facilidade. Além disso, facilita a atualização e gestão contínua do portfólio.
2. Catálogo de Produtos:
- Descrição:
Uma loja online pode criar um Custom Post Type “Produtos” para cada item à venda. Cada produto pode incluir detalhes como preço, variações (tamanhos, cores), avaliações de clientes e imagens. - Benefícios:
Facilita a gestão de produtos, oferece uma experiência de compra mais organizada e permite a aplicação de filtros e categorias específicas para ajudar os clientes a encontrar o que desejam com facilidade.
3. Eventos e Calendário:
- Descrição:
Um site de eventos pode usar um Custom Post Type “Eventos” para listar e detalhar eventos futuros e passados. Cada evento pode ter data, localização, descrição e links para compra de ingressos. - Benefícios:
Melhora a visualização e navegação dos eventos, permitindo aos visitantes filtrar por datas ou tipos de eventos (conferências, shows, workshops), proporcionando uma experiência informativa e agradável.
Benefícios Gerais dos Custom Post Types
- Personalização Avançada:
Custom Post Types permitem adaptar o CMS WordPress para atender necessidades específicas do seu projeto, oferecendo campos personalizados e estruturas de conteúdo únicas. - Melhoria na Usabilidade:
Ao organizar conteúdo com Custom Post Types, você torna mais fácil para os usuários encontrar informações relevantes e navegar pelo site de maneira intuitiva. - SEO Aprimorado:
Estruturar seu site com Custom Post Types pode melhorar a otimização para mecanismos de busca, já que permite uma hierarquia clara e categorização eficiente do conteúdo.
Exemplos Práticos
- Exemplo de Implementação de Custom Post Type “Projetos”:
// Código para registrar um Custom Post Type "Projetos"
function registrar_custom_post_type_projetos() {
$labels = array(
'name' => 'Projetos',
'singular_name' => 'Projeto',
'add_new' => 'Adicionar Novo',
'add_new_item' => 'Adicionar Novo Projeto',
'edit_item' => 'Editar Projeto',
'new_item' => 'Novo Projeto',
'view_item' => 'Ver Projeto',
'search_items' => 'Buscar Projetos',
'not_found' => 'Nenhum projeto encontrado',
'not_found_in_trash' => 'Nenhum projeto encontrado na lixeira',
);
$args = array(
'labels' => $labels,
'public' => true,
'has_archive' => true,
'menu_icon' => 'dashicons-portfolio',
'supports' => array( 'title', 'editor', 'thumbnail', 'custom-fields' ),
);
register_post_type( 'projetos', $args );
}
add_action( 'init', 'registrar_custom_post_type_projetos' );
Agora, vamos analisar a função registrar_custom_post_type_projetos
acima para entender como ela registra um Custom Post Type (CPT) no WordPress. Neste exemplo, estamos criando um CPT chamado “Projetos”.
Explicação Detalhada
1. Definindo a Função
function registrar_custom_post_type_projetos() {
// Código aqui
}
add_action( 'init', 'registrar_custom_post_type_projetos' );
- Função
registrar_custom_post_type_projetos
: Esta função é responsável por definir e registrar um novo Custom Post Type (CPT) chamado “Projetos” - .
add_action( 'init', 'registrar_custom_post_type_projetos' );
: A função é adicionada à açãoinit
, que é um hook no WordPress disparado durante o processo de inicialização. Esse é o ponto ideal para registrar CPTs.
2. Configurando os Rótulos (Labels)
$labels = array(
'name' => 'Projetos',
'singular_name' => 'Projeto',
'add_new' => 'Adicionar Novo',
'add_new_item' => 'Adicionar Novo Projeto',
'edit_item' => 'Editar Projeto',
'new_item' => 'Novo Projeto',
'view_item' => 'Ver Projeto',
'search_items' => 'Buscar Projetos',
'not_found' => 'Nenhum projeto encontrado',
'not_found_in_trash' => 'Nenhum projeto encontrado na lixeira',
);
name
: Nome plural do CPT, exibido em várias áreas administrativas e nas listas de posts.singular_name
: Nome singular do CPT, utilizado em editores e interfaces individuais.add_new
: Texto do rótulo para adicionar um novo post do tipo “Projeto”.add_new_item
: Texto do rótulo para adicionar um novo item do tipo “Projeto”.edit_item
: Texto do rótulo para editar um item do tipo “Projeto”.new_item
: Texto do rótulo para um novo item do tipo “Projeto”.view_item
: Texto do rótulo para visualizar um item do tipo “Projeto”.search_items
: Texto do rótulo para buscar itens do tipo “Projeto”.not_found
: Texto do rótulo para quando nenhum item for encontrado.not_found_in_trash
: Texto do rótulo para quando nenhum item for encontrado na lixeira.
3. Configurando os Argumentos
$args = array(
'labels' => $labels,
'public' => true,
'has_archive' => true,
'menu_icon' => 'dashicons-portfolio',
'supports' => array( 'title', 'editor', 'thumbnail', 'custom-fields' ),
);
labels
: Passa o array de rótulos definidos acima para a configuração do CPT.public
: Define se o CPT é público (true
). Quandotrue
, o CPT estará disponível tanto no admin quanto no front-end.has_archive
: Define se o CPT terá um arquivo (true
). Quandotrue
, o WordPress gerará uma página de arquivo para listar todos os posts do tipo “Projeto”.menu_icon
: Define o ícone que será exibido no menu de administração. Neste caso, estamos usando o íconedashicons-portfolio
.supports
: Define os recursos suportados pelo CPT. No exemplo, o CPT “Projetos” suportatitle
,editor
,thumbnail
ecustom-fields
.
4. Registrando o Custom Post Type
register_post_type( 'projetos', $args );
'projetos'
: O nome do CPT, usado internamente no código e nas consultas.$args
: Os argumentos configurados que definem como o CPT se comporta e aparece.
Exemplo Completo com Explicação
Aqui está o código com explicações inline e o que cada parte faz:
// Define uma função para registrar o Custom Post Type "Projetos"
function registrar_custom_post_type_projetos() {
// Define os rótulos para o Custom Post Type
$labels = array(
'name' => 'Projetos', // Nome plural do Custom Post Type
'singular_name' => 'Projeto', // Nome singular do Custom Post Type
'add_new' => 'Adicionar Novo', // Texto para adicionar um novo item
'add_new_item' => 'Adicionar Novo Projeto', // Texto para adicionar um novo item específico
'edit_item' => 'Editar Projeto', // Texto para editar um item
'new_item' => 'Novo Projeto', // Texto para um novo item
'view_item' => 'Ver Projeto', // Texto para visualizar um item
'search_items' => 'Buscar Projetos', // Texto para buscar itens
'not_found' => 'Nenhum projeto encontrado', // Texto para quando nenhum item for encontrado
'not_found_in_trash' => 'Nenhum projeto encontrado na lixeira', // Texto para quando nenhum item for encontrado na lixeira
);
// Define os argumentos para o Custom Post Type
$args = array(
'labels' => $labels, // Passa os rótulos definidos
'public' => true, // Define se o Custom Post Type é público
'has_archive' => true, // Define se o Custom Post Type terá um arquivo
'menu_icon' => 'dashicons-portfolio', // Define o ícone do menu
'supports' => array( 'title', 'editor', 'thumbnail', 'custom-fields' ), // Define os recursos suportados
);
// Registra o Custom Post Type 'projetos'
register_post_type( 'projetos', $args );
}
// Adiciona a função à ação 'init' do WordPress
add_action( 'init', 'registrar_custom_post_type_projetos' );
Função register_post_type
A função register_post_type
no WordPress é usada para registrar um novo Custom Post Type (CPT).
Isso permite que você crie tipos de conteúdo personalizados além dos tipos de post padrão como “posts” e “páginas”.
Sintaxe Básica
register_post_type( string $post_type, array|string $args = array() )
$post_type
(string): Um identificador único para o seu Custom Post Type. Deve ser uma string em minúsculas e sem espaços. Exemplo: ‘projetos’, ‘eventos’.$args
(array|string): Um array associativo de argumentos que define as características do Custom Post Type. Isso inclui rótulos, visibilidade, suporte a funcionalidades, ícone do menu, etc.
A função registrar_custom_post_type_projetos
que usamos acima é apenas um exemplo de como criar um CPT chamado “Projetos” com uma interface administrativa completa, ícone de menu personalizado e suporte a vários recursos, como título, editor, miniaturas e campos personalizados.
Conclusão
Os Custom Post Types no WordPress são uma solução versátil para organizar e apresentar conteúdo de maneira personalizada.
Ao explorar os diversos casos de uso e benefícios discutidos neste guia, você pode implementar Custom Post Types de forma eficaz para melhorar a estrutura do seu site e a experiência dos usuários.
Se você tem alguma dúvida ou gostaria de compartilhar suas experiências, deixe um comentário abaixo.
Estamos aqui para ajudar!
Aproveite também para inscrever-se em nossa newsletter e nosso CANAL NO YOUTUBE para receber mais dicas e tutoriais exclusivos sobre WordPress diretamente na sua caixa de entrada.
Juntos, vamos transformar sua experiência de criação de conteúdo no WordPress!