Categorias
PHP Wordpress

Criando Custom Post Types no Wordpres Parte 2

Muitas pessoas pensam em WordPress como uma ferramenta de blogs, principalmente porque tem posts, categorias, tags, etc. O que a maioria das pessoas não sabe é que podem ser substituídas por tipos de conteúdos personalizados e taxonomias personalizadas.

Na primeira parte deste artigo ficamos a saber que: Custom Post Types é a função usada para manipulação de conteúdo no WordPress, com ela pode-se criar conteúdos personalizados, diferentes dos 5 tipos de postes padrão do WordPress…

Neste artigo vamos continuar a mostrar-lhe como criar taxonomias personalizadas no WordPress, bem como como exibir os conteúdos personalizados em seu tema WordPress.

Criando Custom Tags Taxonomies

A taxonomia ‘post_tag’ é semelhante às categorias, mas de forma mais livre. As tags ou “etiquetas” podem ser feitas instantaneamente, simplesmente digitando-as e podem ser vistas no site nos tipos de URLs “/tag/tag-nome”. Os posts tendem a ter numerosas tags, e são geralmente indicados perto dos posts ou sob a forma de nuvens de tags.

Vamos usar o seguinte código para cria-las:

<?php
#
# ==============================================================================
# creating custom tags taxonomies for portfolio custom post
# ==============================================================================
#

// registration of tags taxonomies
function my_tag_taxonomies_portfolio() {
  $labels = array(
    'name'                       => __( 'Portfolio Tags', 'text-domain' ),
    'singular_name'              => __( 'Portfolio Tag', 'text-domain' ),
    'menu_name'                  => __( 'Portfolio Tags', 'text-domain' ),
    'edit_item'                  => __( 'Edit Portfolio Tag', 'text-domain' ),
    'update_item'                => __( 'Update Portfolio Tag', 'text-domain' ),
    'add_new_item'               => __( 'Add New Portfolio Tag', 'text-domain' ),
    'new_item_name'              => __( 'New Portfolio Tag Name', 'text-domain' ),
    'parent_item'                => null,
    'parent_item_colon'          => null,
    'all_items'                  => __( 'All Portfolio Tags', 'text-domain' ),
    'search_items'               => __( 'Search Portfolio Tags', 'text-domain' ),
    'popular_items'              => __( 'Popular Portfolio Tags', 'text-domain' ),
    'separate_items_with_commas' => __( 'Separate portfolio tags with commas', 'text-domain' ),
    'add_or_remove_items'        => __( 'Add or remove portfolio tags', 'text-domain' ),
    'choose_from_most_used'      => __( 'Choose from the most used portfolio tags', 'text-domain' ),
    'not_found'                  => __( 'No portfolio tags found.', 'text-domain' ),
    'items_list_navigation'      => __( 'Portfolio tags list navigation', 'text-domain' ),
    'items_list'                 => __( 'Portfolio tags list', 'text-domain' ),
  );
  $args = array(
    'labels'            => $labels,
    'public'            => true,
    'show_in_nav_menus' => true,
    'show_ui'           => true,
    'show_tagcloud'     => true,
    'hierarchical'      => false,
    'rewrite'           => array( 'slug' => 'portfolio_tag' ),
    'show_admin_column' => true,
    'query_var'         => true,
  );
  register_taxonomy( 'portfolio_tag', 'portfolio', $args );
}
add_action( 'init', 'my_tag_taxonomies_portfolio', 0 );
?>

Como podemos ver, é similar ao das categorias a única diferença é que indicamos o argumento “hierarchical” como false e também adicionamos null para os argumentos “parent_item” e “parent_item_colon”, o que significa que nada será mostrado na UI (interface do usuário) para criar um “parent_item”.

Depois de termos criado o nosso conteúdo personalizado, adicionado taxonomias personalizadas é hora de ver como ele funciona. Temos que obter algo semelhante á seguinte imagem:

custom-post-types-no-wordpress-1

Criando templates para exibir o conteúdo

Os conteúdos personalizados quando exibidos eles tomam o arquivo single.php como a exibição padrão. No entanto, podemos personalizar um template (modelo de página) para exibir os tipos de conteúdos personalizados.

Para criar um modelo de página, precisamos lembrar sempre que o modelo de página para conteúdos personalizados deve ser salvo como single-{post_type}.php enquanto o modelo de página de arquivo deve ser salvo como archive-{post_type}.php.

Então devemos criar um novo arquivo, adicionar o código abaixo e salvá-lo como single-portfolio.php.

<?php
/*
   Template Name: Portfolio
   Description: Page template to display portfolio custom post types
    
*/
get_header(); ?>
 
<div id="primary">
 
    <div id="content" role="main">
 
	<header> <?php the_title( '<h2>', '</h2>' ); ?> </header>
    
    <?php    
    $cpt_portfolio = array( 'post_type' => 'portfolio', );
    $loop = new WP_Query( $cpt_portfolio );    
    ?>
    <?php while ( $loop->have_posts() ) : $loop->the_post();?>
        <article id="post-" <?php post_class(); ?>>
            <div class="entry-content"><?php the_content(); ?></div>
        </article>
    <?php endwhile; ?>
    
    </div>
    
</div>
 
<?php get_footer(); ?>

Se você olhar para o código acima vai notar que eu criei uma matriz que definiu o tipo de post que deve ser passado no loop do WordPress. O resto do código é o de obter o cabeçalho, obter o rodapé e o loop padrão do WordPress . Você pode adicionar mais código para melhorar a maneira como o conteúdos personalizados é exibido.

Nesta altura você terá algo como mostrado na imagem abaixo:

custom-post-types-no-wordpress-2

Bom neste artigo ficamos por aqui, já temos o nosso «Custom Post Types» criado e a funcionar. No próximo artigo vamos ver como personalizar os templates (modelo de página) para mostrar o nosso portefólio.

Um abraço…



Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *