Desde a versão 2.9, o WordPress lançou a capacidade de usar os tipos de post personalizados. Com a versão 3.0, as coisas ficaram um pouco mais avançadas com a opção de criar painéis para seus tipos de post personalizados. Neste tutorial, vamos mostrar como implementar os Tipos de Post Personalizados em seu site WordPress.
Criando Tipos de Post Personalizados – Usando Plugins
A partir da versão 3.0, o WordPress não tem qualquer UI (interface de usuário) built-in para criar tipos de posts personalizados. Há apenas duas opções que podemos usar para criar tipos de posts personalizados: usando plugins ou inserindo códigos diretamente no arquivo functions.php do seu tema. Primeiro, vamos ver como podemos usar plugins para criar tipos de posts personalizados.
Custom Post Type UI
Custom Post Type UI é um plugin desenvolvido por Brad Williams da WebDevStudios, que permite que você crie facilmente tipos de posts personalizados e taxonomias. Uma das característica mais legais deste plugin é que ele gera um código para criar tipos de posts personalizados, para que você possa, em seguida, colá-lo no arquivo functions.php do seu tema. Uma das peculiaridades deste plugin é de não ser capaz de compartilhar taxonomias entre todos os seus post_types.
No painel do Custom Post Type UI clique em “Add New“. Em seguida, serão dadas algumas opções para preencher. O “Post Type Name” é o que será usado pelo WordPress para consultar todos os posts do post_type. A “Label” é o que será exibido na barra lateral do seu Dashboard, assim como é o menu “Posts”. Se você clicar em “Advanced Options“, você vai ver mais algumas opções que pode configurar. A maioria são auto-explicativas, como “Public” e “Show UI“. A primeira, quando definida como “True“, permite que o menu dos tipos de post personalizados sejam exibidos na barra lateral, e outro (Show UI), quando definido como “True” gera o painel de menu.
“Rewrite” é o que permite os tipos de post personalizados usarem as URLs do WordPress amigáveis à SEO (Links Permanentes). O “Custom Rewrite Slug” pode ser definido como qualquer coisa que queira. O WordPress vai usar esse slug para gerar os Links Permanentes (Permalinks). Então, se temos “exemplo.com.br” com um slug (rewrite) personalizado “filmes”, o link permanente do seu tipo de post personalizado seria algo como “exemplo.com.br/filmes“.
A Função WordPress “Query Var” permite que você consulte os posts de seus tipos de post personalizados. Então, se nós usássemos o exemplo dado anteriormente, para acessar um post com o título “Meu Primeiro Post de Filme”, que é escrito no post_type “Filmes”, acessaríamos este post em “exemplo.com.br/?filmes=meu-primeiro-post-de-filme“. Assim, a variável de consulta fica assim: ?nomedoposttype.
Finalmente, você pode escolher as diferentes características suportadas pelo seu tipo de post personalizado, como thumbnails/imagem destacada e resumos.
Criando Tipos de Post Personalizados – Usando o arquivo functions.php
Tipos rígido código personalizado Postar
Se você preferir usar tipos de post personalizados sem um plugin, então, basta adicionar o seguinte código ao arquivo functions.php do seu tema:
// Criando o tipo de post Filmes register_post_type('filmes', array( 'label' => 'Filmes', 'public' => true, 'show_ui' => true, 'capability_type' => 'post', 'hierarchical' => false, 'rewrite' => array('slug' => 'filmes'), 'query_var' => true, 'supports' => array( 'title', 'editor', 'excerpt', 'trackbacks', 'custom-fields', 'comments', 'revisions', 'thumbnail', 'author', 'page-attributes',) ) );
Vamos dissecar o código.
- register_post_type( $post_type, $args ): Esta função aceita dois parâmetros, $post_type ou o nome do tipo de post, e $args, uma série (array) de argumentos.
- label: Nome no plural dado para o tipo de post, que é exibido na barra lateral do painel administrativo do WordPress.
- public: true/false. Permite que a UI do administrador seja preenchida com posts deste tipo.
- show_ui: true/false. Mostra ou oculta uma UI padrão para gerenciar este tipo post.
- capability_type: Padrão: post. Usada pelo tipo de Post para ler, editar e excluir capacidades.
- hierarchical: Se o tipo de post é hierárquico.
- rewrite: true/false. Padrão: true. Se o argumento slug for introduzido então o nome do slug será atribuído aos posts.
- query_var: true/false. Define o nome do tipo post como uma variável de consulta.
- supports: Padrão: title e author. Define suporte às diferentes características que o tipo de post permite.
Visite o WordPress Codex para mais informações sobre register_post_type().
Exibindo Posts de Tipos de Post Personalizados
Para exibir os Posts do seu tipo de post personalizados, adicione os seguintes códigos no loop. Substitua “nome” pelo nome do seu tipo de post. Nota: Você não tem que adicionar os tipos de post personalizados em seu arquivo index.php. Você pode criar uma página personalizada no WordPress e executar a seguinte consulta no Loop.
$query = new WP_Query( 'post_type=nome' );
Para exibir os posts de mais de um tipo de post, altere o código acima para o código abaixo. Mude “filmes” pelo nome do seu tipo de post personalizado.
$query = new WP_Query( array( 'post_type' => array( 'post', 'filmes' ) ) );
O código acima irá exibir todos os posts do tipo regular de post (post) e do tipo de post personalizado (filmes).
É isso aí. Esperamos que este tutorial tenha sido útil e não se esqueça de postar qualquer dúvida nos comentários. Aproveite para compartilhar este tutorial com seus amigos.