Há muitos tutoriais sobre como registrar posts e taxonomia personalizada, porém não achei nenhum que mostre (de uma forma clara e objetiva)como usá-los no desenvolvimento de um tema, o que vamos ver neste tutorial é o seguinte:
- Registrando um post e uma taxonomia personalizada
- Como exibir a página do post(como o single.php) do post pernalizado criado
- Como listar os termos de uma taxonomia customizada
- Como exibir todos os posts de um termo da nova taxonomia criada
- Como exibir todos os posts do tipo de post pernalizado criado
Vamos fazer uma simulação para uma area especifica de um site que terá artigos sobre Séries de TV(então o novo tipo de post será séries) e serão classificados por genêros(então nossa nova taxonomia será genêro), por exemplo, ficção cientifica, terror, comedia(esses são os termos)…
Registrando um post e uma taxonomia personalizada
Para registrar um post personalizado faça o seguinte:
Abra o arquivo functions.php do seu tema e digite o seguinte:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | add_action('init', 'series_register'); function series_register() { $labels = array( 'name' => __('Séries'), 'singular_name' => __('Séries'), 'add_new' => __('Nova Série'), 'add_new_item' => __('Adicionar nova serie'), 'edit_item' => __('Editar Série'), 'new_item' => __('Nova Série'), 'view_item' => __('Ver Série'), 'search_items' => __('Buscar Série'), 'not_found' => __('Nenhuma série encontrada'), 'not_found_in_trash' => __('Nada encontrado na Lixeira'), 'parent_item_colon' => '' ); $args = array( 'labels' => $labels, 'public' => true, 'publicly_queryable' => true, 'show_ui' => true, 'query_var' => true, 'rewrite' => true, 'capability_type' => 'post', 'hierarchical' => false, 'menu_position' => null, 'supports' => array('title','editor') ); register_post_type( 'series' , $args ); } |
Já registramos nosso novo post series (register_post_type( ‘series’ , $args );, para saber mais sobre cada parâmetro da função clique no link –http://codex.wordpress.org/Function_Reference/register_post_type.
Agora vamos registrar nossa nova taxonomia genêro, no mesmo arquivo functions.phpdigite:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | $labels = array( 'name' => __( 'Gêneros'), 'singular_name' => __( 'Gênero'), 'search_items' => __( 'Buscar' ), 'popular_items' => __( 'Mais usados' ), 'all_items' => __( 'Todos os Gêneros' ), 'parent_item' => null, 'parent_item_colon' => null, 'edit_item' => __( 'Add novo' ), 'update_item' => __( 'Atualizar' ), 'add_new_item' => __( 'Adicionar novo Gênero' ), 'new_item_name' => __( 'Novo' ) ); register_taxonomy('genero', array('series'), array( 'hierarchical' => true, 'labels' => $labels, 'singular_label' => 'Gênero', 'all_items' => 'Todos os Gêneros', 'query_var' => true, 'rewrite' => array( 'slug' => 'genero' )) ); |
E importante observar a linha - ‘rewrite’ => array( ‘slug’ => ‘genero’ )) – onde é reescrito a slug da taxonomia, se você quizer pode deixar ‘rewrite’ => array( ‘slug’ => ‘series/genero’ )) , assim a url fica mais organizada, por exemplo,http://www.dominio.com/series/genero/drama/ e nãohttp://www.dominio.com/genero/drama/ o que ficaria estranha, porém caso você precise usar essa taxonomia em mais de um post personalizado, irá dar problema.
para saber mais sobre cada parâmetro clique no link –http://codex.wordpress.org/Function_Reference/register_taxonomy
Na barra lateral da sua area administrativa deverá aparecer a seguinte estrutura:
Como exibir a página do post(como o single.php) do post pernalizado criado
Para exibir o post de um tipo de post personalizado basta ter o single.php no seu tema, porém caso você precise exibir este posts de uma forma diferente terá que criar um arquivo single-custom-post.php, então nosso arquivo se chamará single-series.php e será usada sempre que surgir uma url – http://www.dominio.com/series/slug-do-post
Como listar os termos de uma taxonomia customizada
Para listar os termos da taxonomia(genero) criada, basta as seguintes linhas:
1 2 3 | <ul> <?php wp_list_categories('taxonomy=genero'); ?> </ul> |
Você pode consultar mais parâmetros da função wp_list_category() no link – http://codex.wordpress.org/Template_Tags/wp_list_categories
Como exibir todos os posts de um termo da nova taxonomia criada
A exibição dos posts dos termos é semelhante aos dos posts simples, você só precisará criar um arquivo com o nome taxonomy-taxonomy.php, então nosso arquivo irá se chamar taxonomy-genero.php, assim quando for solicitado, por exemplo a url –http://www.dominio.com/genero/drama, o arquivo taxonomy-genero.php entrará em ação e listará todos os posts assim como o arquivo category.php faz.
Como exibir todos os posts do tipo de post pernalizado criado
Para exibir todos os posts do tipo de post series faremos o seguinte:
Crie um arquivo chamado series.php, abra ele e no topo do documento digite:
1 2 3 4 5 | <?php /* Template Name: Séries */ ?> |
Assim criaremos uma pagina personalizada, então crie uma nova pagina chamadaSéries e em Atributos de página escolha o modelo Séries, veja a imagem a baixo.
Agora antes do loop, digite o seguinte:
1 | <?php query_posts( array( 'post_type' => 'series' ) );?> |
onde post_type => series, indica o post que será chamado, que no nosso caso éseries, para consulta outros parâmetros da função query_posts() acesse –http://codex.wordpress.org/Function_Reference/query_posts.
Nota:
Caso apareça erro 404 ao tentar carregar a alguma pagina, reescreva seu arquivo.htaccess indo em configurações > link permanentes .
É isso pessoal, há muita coisa para ser explicado ainda, mas ficará para outro post, essas novas funções não são um assunto muito complexo e sim muito amplo, dando a possibilidade de fazer muitas coisas, quem tiver algo a perguntar e/ou a acrecentar não hesite em colocar nos comentários.
Fonte: Marcelo Torres
Nenhum comentário:
Postar um comentário