Custom Post Types: Como e por que usar tipos de postagens no WordPress

Leandro Lopes
Por Leandro Lopes
18 Min Leitura
Custom Post Types: Como e por que usar tipos de postagens no WordPress
Custom Post Types

Os sites WordPress são ótimos para armazenar conteúdo. Tem algumas palavras e imagens que deseja mostrar ao mundo? O WordPress é uma ótima ferramenta para esse trabalho. Provavelmente o melhor. Mas por padrão ele possui apenas dois tipos de conteúdo: Posts e Páginas.

Eles são ótimos, mas muitas pessoas têm muitos outros tipos de conteúdo: depoimentos de clientes, documentação de um projeto, listagens de projetos anteriores e muito mais. Postagens e páginas podem ser feitas para abrigar esses tipos de itens, mas há uma opção melhor: tipos de postagem personalizados do WordPress.

Tipos de postagem personalizados – geralmente CPTs abreviados – são maneiras de obter uma interface semelhante a postagens ou páginas para qualquer tipo de conteúdo desejado.

Realmente não importa como você chama um CPT que você cria ou para que você o usa, os limites são sua imaginação. Portanto, abordaremos todos os aspectos de como fazer isso hoje!

- Auditoria Gratuita de SEO -
Auditoria Gratuita de SEO

Uma coisa rápida antes de começarmos. Se você deseja aprender o desenvolvimento do WordPress, escrevemos o melhor guia para isso:

Por que você deve criar Custom Post Types personalizados no WordPress

Por que tipos de postagem personalizados? Porque, ao criar sites, às vezes você descobrirá que está limitado metaforicamente ou praticamente pelas limitações dos “Tipos de postagem” padrão do WordPress – que significa “Postagens” e “Páginas”.

Em algumas situações, isso significará simplesmente que você está procurando criar algo claramente diferente de qualquer uma dessas coisas. “Formulários” é um exemplo comum: mesmo que você modifique um tipo de postagem padrão para servir ao propósito, o conceito simplesmente não se encaixa bem.

Ao criar seu site, você geralmente fica limitado pelas limitações dos “Tipos de postagem” padrão do WordPress.

Outro lugar onde a necessidade de novos “posts” ou tipos de conteúdo se revela é quando você cria uma hierarquia profundamente aninhada em seu tipo de conteúdo padrão de Páginas para obter o tipo de permalinks que deseja.

Quando criamos o site da nossa agência pela primeira vez, foi assim que fizemos uma listagem de todos os diferentes serviços que oferecemos.

Leia Também

  1. Taxonomias personalizadas do WordPress: como e por que criá-las
  2. Checklist para blog: coisas para verificar antes e depois da publicação
  3. O que é tráfego de SEO? Definição, importância e como obtê-lo

Agora acho que fazer essas páginas foi uma perda de tempo, mas quando o fizemos, tínhamos cerca de 30 itens aninhados na página “Serviços”. E funcionou, mas não foi divertido trabalhar com isso.

Aconselho que, se você tiver mais de 10 páginas aninhadas em uma página pai específica no WordPress, é um lugar onde você pode se beneficiar ao criar um novo tipo de conteúdo.

Além de “páginas demais”, há alguns outros sinais de que você provavelmente será mais bem atendido por um tipo de postagem personalizado:

  • Se você achar que está usando regularmente uma determinada categoria de postagem de seu blog de maneiras estranhas e, consequentemente, se pega batendo cabeça contra a lógica em seus arquivos de modelo para fazer com que suas postagens tenham a aparência desejada, você provavelmente deseja criar uma tipo de conteúdo para isso;
  • Se você foi forçado a “hackear” sua estrutura de permalink para ser sensível à categoria de uma postagem para dar às suas postagens nessa categoria especial uma URL sã, provavelmente é novamente um caso em que você deve usar um tipo de postagem personalizada.

Portanto, você precisa de tipos de postagem personalizados. Como obter?

- Auditoria Gratuita de SEO -
Auditoria Gratuita de SEO

Depois de identificar a necessidade de um novo tipo de conteúdo em seu site WordPress, há várias maneiras de criá-lo. Muitos para eu cobri-los todos exaustivamente aqui. Mas eles se dividem em três maneiras básicas de obter seu(s) Custom Post Types, então vou explicá-las.

Usando um Plugin que já cria os Custom Post Types

Este foi omitido na primeira publicação deste artigo, mas acho que é muito importante e bom que as pessoas percebam. Como sugeri na seção anterior, os plug-ins criam seus próprios tipos de postagem personalizados. O exemplo que acho que faz mais sentido discutir é um plug-in de comércio eletrônico como o WooCommerce (como o maior do mercado, é sobre isso que falaremos especificamente).

O WooCommerce criará (e mostrará) um novo tipo de postagem personalizado chamado “Produtos”. É um ótimo exemplo de um lugar onde os tipos de postagem personalizados fazem todo o sentido. Imagine que você estava criando um site de comércio eletrônico e precisava usar uma seção denominada “Páginas” ou “Postagens” para controlar seus produtos.

Os tipos de postagem personalizados de produtos do WooCommerce abrigam algumas funcionalidades personalizadas e também um monte de coisas que você espera. Eles oferecem suporte ao editor de conteúdo, imagens em destaque e muito mais. Eles também têm suas próprias taxonomias, como “categoria de produto” e muito mais.

Todos os recursos que o tipo de postagem de produto do WooCommerce usa estão disponíveis para você como desenvolvedor quando você cria seus próprios Custom Post Types e interface. Dito isso, você também deve perceber que não tem as milhares de horas gastas para tornar o WooCommerce tão bom quanto é.

Por esse motivo, talvez não saia criando um tipo de postagem personalizada de “Produto” quando você pode usar o WooCommerce e obter todos esses itens de graça.

Sistemas de plugins baseados na interface do usuário para criação de CPT

Além de apenas usar um plug-in compatível com o tipo de postagem personalizado que você deseja, existem plug-ins que permitem configurar o seu próprio. A grande vantagem, você pode criar Custom Post Types sem escrever nenhum código. Esses plugins vão te ajudar a fazer CPTs na área admin do seu site apenas preenchendo um formulário. É aqui que você deseja começar se estiver enfrentando o problema como um usuário que não deseja escrever nenhum PHP.

Qualquer um desses sistemas criará um novo conjunto de opções para você em seu painel do WordPress que permite criar esses novos conteúdos ou Custom Post Types simplesmente digitando seu nome e clicando em algumas pequenas opções. Muitos deles até oferecem uma boa interface para configurar alguns campos personalizados e taxonomias para esses novos tipos de conteúdo que você está criando (mas aprofundar isso é um tópico para outra hora).

Como eu disse, há um grande número de plugins nesta categoria. Aqui estão alguns dos plugins gratuitos no repositório de plugins do WordPress que farão isso, com um rápido resumo:

Pods — Não apenas você pode criar tipos de postagem personalizados e taxonomias, mas também pode usar pods para aumentar os tipos de postagem padrão e perfis de usuário. Os pods são orientados pela comunidade, apoiados por uma fundação sem fins lucrativos e recebem algum suporte da Automattic. (Temos um guia rápido sobre como fazer isso com pods !)

- Auditoria Gratuita de SEO -
Auditoria Gratuita de SEO

Tipos de conjunto de ferramentas — Crie seus tipos de postagem personalizados, taxonomias e muito mais. Ele também possui algumas extensões premium para aprimorar sua funcionalidade e a do WordPress.

IU de tipo de postagem personalizada – Do pessoal da WebDevStudios, um plug-in simples para permitir a criação de tipos de postagem personalizados e taxonomias para eles.

Custom Post Type Maker – Muito parecido com a interface do usuário de tipos de postagem personalizados, isso oferece uma interface simples para criar tipos de postagem e taxonomias personalizadas.

Crie um Plugin personalizado para seu tipo de Conteúdo

Como alguém que prefere escrever PHP do que mexer com interfaces, normalmente pulo toda essa classe de soluções quando estou procurando criar novos tipos de postagem personalizados no WordPress. A função do WordPress register_post_type() é como você cria novos tipos de conteúdo com PHP. É relativamente fácil de usar se você entender a API do WordPress e o sistema de ganchos.

Se isso era tudo grego para você, a primeira classe de opções provavelmente atenderá bem às suas necessidades. Eles estão usando essa função sob o capô, mas você não precisa mexer nisso.

Minha preferência por esse método é um pouco mais justificada do que apenas não gostar de clicar em botões em interfaces de usuário que não criei.

Sugestão de Leitura: Diferença entre UX e UI

Como todos os plug-ins de tipo de postagem personalizado acima permitem que você configure seus tipos de postagem de forma rápida e fácil, você está armazenando seus dados sobre os tipos de postagem (e taxonomias e campos personalizados, se os estiver usando) no banco de dados também. Isso tem duas grandes desvantagens:

  1. Sua configuração agora é menos portátil. Um plug-in personalizado, configurado para as especificidades de seus tipos e recursos de conteúdo, pode ser facilmente levado para outro site WordPress sem a necessidade de transferir dados do banco de dados. Novamente, para a maioria das pessoas que procuram o primeiro tipo de solução, isso não é um problema real. É um problema para um desenvolvedor que trabalha em projetos que podem ter vários sites intermediários no processo de design e desenvolvimento, mas se você tiver apenas o seu “um site verdadeiro”, não há problema. (Mas, se você tiver apenas o seu “um site verdadeiro”, eu realmente espero que você mantenha pelo menos um sistema de backup em execução para o seu site.)
  2. Como os plug-ins “faça isso por mim” estão armazenando os dados no banco de dados, eles estão fazendo pelo menos uma chamada de banco de dados desnecessária (para obter suas opções de configuração) antes de carregar cada página do WordPress. Para configurações de hospedagem de alta qualidade e desempenho, isso não é grande coisa, admito, mas não é gratuito. Não fiz benchmarks, nem pretendo, mas isso é um custo desses plugins.

Código de exemplo de um tipo de postagem personalizada, explicado

Este tutorial não será muito exaustivo no código para CPTs. Acho que você não quer ler isso nem quero escrever uma divisão linha por linha do código de exemplo e de cada parâmetro para a register_post_type função. Mas acho que tenho algumas intuições que vou oferecer a você sobre este código de exemplo, emprestado da página muito boa e completa do Codex:

Código de exemplo de um tipo de postagem personalizada, explicado

- Auditoria Gratuita de SEO -
Auditoria Gratuita de SEO

Este tutorial não será muito exaustivo no código para CPTs. Acho que você não quer ler isso nem quero escrever uma divisão linha por linha do código de exemplo e de cada parâmetro para a register_post_typ efunção. Mas acho que tenho algumas intuições que vou oferecer a você sobre este código de exemplo, emprestado da página muito boa e completa do Codex:

add_action( 'init', 'codex_book_init' );
function codex_book_init() {
$labels = array(
'name' => _x( 'Books', 'post type general name', 'your-plugin-textdomain' ),
'singular_name' => _x( 'Book', 'post type singular name', 'your-plugin-textdomain' ),
'menu_name' => _x( 'Books', 'admin menu', 'your-plugin-textdomain' ),
'name_admin_bar' => _x( 'Book', 'add new on admin bar', 'your-plugin-textdomain' ),
'add_new' => _x( 'Add New', 'book', 'your-plugin-textdomain' ),
'add_new_item' => __( 'Add New Book', 'your-plugin-textdomain' ),
'new_item' => __( 'New Book', 'your-plugin-textdomain' ),
'edit_item' => __( 'Edit Book', 'your-plugin-textdomain' ),
'view_item' => __( 'View Book', 'your-plugin-textdomain' ),
'all_items' => __( 'All Books', 'your-plugin-textdomain' ),
'search_items' => __( 'Search Books', 'your-plugin-textdomain' ),
'parent_item_colon' => __( 'Parent Books:', 'your-plugin-textdomain' ),
'not_found' => __( 'No books found.', 'your-plugin-textdomain' ),
'not_found_in_trash' => __( 'No books found in Trash.', 'your-plugin-textdomain' )
);

$args = array(
'labels' => $labels,
'description' => __( 'Description.', 'your-plugin-textdomain' ),
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'show_in_menu' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'book' ),
'capability_type' => 'post',
'has_archive' => true,
'hierarchical' => false,
'menu_position' => null,
'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
);

register_post_type( 'book', $args );
}

A primeira parte deste código que vale a pena observar é a add_action. Se você é novo no WordPress, isso pode ser bastante confuso.

A segunda coisa a discutir é a primeira grande matriz de rótulos. Estes não são, estritamente falando, necessários. Eu os acho irritantes de escrever, mas gosto do efeito deles, então normalmente os mantenho por perto. A função deles é fornecer ao WordPress o texto certo para todos os botões da sua interface.

Portanto, se você não tiver o edit_item elemento array, por exemplo, quando estiver visualizando uma instância do tipo de postagem na parte da frente do seu site, a barra de administração exibirá “Editar postagem” em vez de “Editar livro”. Não é o fim do mundo, mas não é ótimo. Se você deseja que o WordPress use o idioma certo, você precisa incluir esse idioma.

Finalmente, há toda a $argsmatriz. Este é um padrão comum (e, na minha opinião, bom) no WordPress. É útil porque oferece a opção de especificar alguns elementos para a configuração, mas não é necessário escrevê-los todos. Este exemplo é muito especificado.

Sugestão de Leitura: 21 táticas para otimizar seu blog para SEO

O único elemento que realmente quero destacar é rewriteonde você define o slug de URL para os elementos. É esse elemento, não seu primeiro argumento para a register_post_type função, que controla o que você verá nas URLs. Para tipos de postagem que são duas palavras em inglês ou onde você deseja que o nome de código interno do WordPress seja abreviado da maneira como deseja usá-lo em seus URLs, eles seriam diferentes.

- Auditoria Gratuita de SEO -
Auditoria Gratuita de SEO

Sobre as URLs, outra pequena “pegadinha” dos tipos de postagem personalizados é que você deve atualizar suas regras de reescrita ou permalinks para que sejam exibidos corretamente. Isso é muito fácil de fazer, basta ir para “Configurações > Permalinks” e definir temporariamente um valor diferente e, em seguida, alterá-lo novamente.

Essa economia (não é bem o troco, sou apenas supersticioso) é o que vai permitir que suas páginas Custom Post Types comecem a funcionar.

Resumo sobre Tipos de postagem personalizados no WordPress

Tipos de postagem personalizados são um recurso poderoso e importante que leva o WordPress de “software de blog” a um sistema completo de gerenciamento de conteúdo. Acho lamentável o uso de “post” no nome “Custom Post Types”, mas é apenas um acidente da história que rapidamente cai em segundo plano.

O poder central dos CPTs é grande o suficiente para você esquecê-lo rapidamente. Se Pods, WooCommerce ou seu próprio plug-in personalizado oferecem os tipos de postagem personalizados de que você precisa, seu site WordPress ficará melhor quando os tiver. Feliz hacking!

Subscription Form

Assine nossa Newsletter!

Fique por dentro das últimas atualizações de desempenho do WordPress e da web.
Direto para sua caixa de entrada a cada duas semanas.

Compatilhe este Conteúdo
Seguir
É especialista em WordPress com mais de 12 anos de experiência no CMS, além de experiência em provedores de hospedagem, banco de dados, front-end e back-end em desenvolvimento web. Trabalhou ou teve participação em projetos ligado à empresas: Hopi Hari, iG, entre muitos outros