O WordPress permite o armazenamento de diferentes tipos de conteúdo. Esses conteúdos são armazenados no banco de dados na tabela wp_posts e diferenciados pela coluna post_type.
Nas versões anteriores a 3.0 do WordPress, já era possível a criação de Tipo de Posts Personalizados(Custom Post Types), porém a partir da versão 3.0 foram implementados novos métodos com a finalidade de facilitar e popularizar o uso dos tipos de posts, que na verdade são tipos de conteúdos personalizados.
Tipos de posts padrões
Post
Um post (no banco de dados post) é o principal tipo de conteúdo utilizado, os Posts normalmente são exibidos em um blog ordenados cronologicamente. E também são usados na publicação dos feeds.
Páginas
Uma página (no banco de dados page) é muito parecio com um post, porém não faz parte da mesma estrutura cronológica dos posts. Veja algumas diferenças importantes entre Posts e Páginas:
- Páginas não são organizadas cronologicamente;
- Páginas possuem uma estrutura de URL própria, podendo ser acessadas a partir da URL do site principal;
- Páginas podem utilizar Modelos de Páginas especiais;
- Páginas também podem ser organizadas dentro de uma estrutura hierárquica;
Anexo
Um anexo (no banco de dados attachment) é um post especial que contém informações sobre arquivos enviados através do sistema de upload de mídia.
Revisões
A revisão (no banco de dados revision), é usada para armazenar um rascunho de todos os posts (posts) e páginas (pages) existentes.
Menus de Navegação
Um menu de navegação(no banco de dados nav_menu), é usado para armazenar todas as informações relacionadas aos menus de navegação, outra implementação que só está disponível a partir do WordPress 3.
Agora que já sabemos quais são os cinco tipos de posts padrão do WordPress, vamos ver como são criados novos tipos de posts personalizados.
Tipos de Posts Personalizados
Para adicionar um tipo personalizado no WordPress 3.0, é preciso usar a função register_post_type. Esta função permite que você defina o tipo de post e como ele se comporta dentro do WordPress.
Registrando um tipo de post personalizado:
[sourcecode language='php']
add_action( init, create_post_type );
function create_post_type() {
register_post_type( noticias,
array(
labels => array(
name => __( Notícias ),
singular_name => __( Notícia )
),
public => true,
)
);
}
[/sourcecode]
O código acima cria um tipo de post noticias, ou seja, toda vez que criado um post com este tipo, no banco de dados na tabela wp_posts na coluna post_type referente a este post, contará o valor noticias. A função register_post_type possui diversos parâmetros, no exemplo acima foram usados dois principais, o primeiro é o labels, que define o nome do novo tipo personalizado, o plural e o singular. O segundo é public, que é uma flag para mostrar o tipo de post na seção de administração do site, e para fazê-lo aparecer no site principal, se é adicionado nas queries ou não.
Você pode personalizar várias informações sobre o tipo personalizado, para saber mais sobre os outros parâmetros acesse a documentação da função register_post_type.
Exibindo o conteúdo na interface do website
Para fazer consultas específicas e trazer apenas posts do tipo personalizado que você deseja, você pode utilizar o parâmetro post_type em um objeto WP_Query sempre que precisar, por exemplo:
[sourcecode language='php']
$loop = new WP_Query( array( post_type => noticias, posts_per_page => 10 ) );
while ( $loop->have_posts() ) : $loop->the_post();
echo
;
the_title();
echo
;
echo
the_content();
echo
;
endwhile;
[/sourcecode]
O código acima mostrará os 10 últimos posts do tipo noticias inseridos no painel administrativo.
Plugins para Custom Post Types
- Custom Post Types UI
- Easy Post Types
-
Este post foi publicado em Dicas e Tutoriais, Tutoriais e marcado com a tag Custom Post Types, Tipos de Posts Customizados, wordpress 3.0 em .
6 ideias sobre “Utilizando Custom Post Types no WordPress 3”
Pingback: Utilizando Custom Post Types no WordPress 3 | Códigos da Liberdade
Bom dia!
Ótimo artigo!
Instalei o Custom Post Types no meu site, no back end está tudo ok.
Porém não consigo exibí-lo no front-end.
Como foi construída uma página de eventos, gostaria de adicioná-lo do lado direito do site.
Como posso fazer isso?
gostaria que essa forma de armazenamento de dados,favorecesse a mais ao desvio de sites indesejaveisatenciosamente. franklin
Legal tentar explicar, a parte ruim é que vocês sempre excluem os não programadores da boa informação, usar paginas de exemplo que devem receber esses códigos seria de grande valia pra quem está começando porque fica a duvida, onde eu uso isso? no functions, no tema, onde? mesmo assim é ótima a iniciativa de ajudar.
Boa Noite!
Excelente artigo, eu usei e funcionou perfeitamente. Só queria saber pra criar categorias personalizadas. Parabéns pelo site.
Ótimo artigo! Como faço pra exibir as informações do metabox no site. Obrigado!