Image Image Image Image Image
Scroll to Top

Topo

28

jan
2014

Sem Comentários

Em Blog
Código
PHP
Wordpress

Por Mike Lopes

Desvendando os “Custom Post Type” – Parte 01

Em 28, jan 2014 | Sem Comentários | Em Blog, Código, PHP, Wordpress | Por Mike Lopes

Por Eloi Morais de Matos

O que é?

Os Tipos Personalizados de Posts (Custom Post Type) são tipos de post que são criados, além dos fornecidos por padrão WordPress. Quando ativamos um tema ou um plugin às vezes encontramos novos tipos de post que foi colocado para suprir as necessecidades do desenvolvedor.

Onde usar?

São usados ​​em uma grande variedade de maneiras em todo o ecossistema WordPress. Sempre que você precisar de um tipo de conteúdo que é diferente dos tipos padrão, tenha em mente que é a hora de usar os tipos personalizados de post. Alguns exemplos de como eles são usados ​​são:

  • Produtos para um site de comércio eletrônico;

  • Depoimentos em portfolio;

  • Listagem para um site imobiliário;

  • Avaliações para um site de jogos

  • Eventos para um calendário de eventos;

  • Veículos para um site automotivo;

  • Filmes para uma locadora;

  • Livros para uma biblioteca.

Você pode criar um tipo de post para cada uma delas, Cada uma com seus próprios dados e taxonomias adicionais e, em seguida, registra-las utilizando o seu tema. Isso aumenta a flexibilidade do WordPress já que você não estará limitado aos tipos de conteúdo que vem por padrão nele.

Como criar?

Se você quiser escrever novos tipos de posts personalizados, você pode registra-lo no arquivo functions.php do seu tema, ou em um plugin. Neste você pode definir as propriedades do tipo de post e como ele age dentro do WordPress. O WordPress Codex tem um guia para os tipos personalizados de post com informações sobre codificação deles, mas deixarei aqui um código simples retirado do GenerateWP onde você pode personalizar mais ainda os novos tipos de posts. Veja abaixo:

// Register Custom Post Type
function custom_post_type() {

	$labels = array(
		'name'                => _x( 'Post Types', 'Post Type General Name', 'text_domain' ),
		'singular_name'       => _x( 'Post Type', 'Post Type Singular Name', 'text_domain' ),
		'menu_name'           => __( 'Post Type', 'text_domain' ),
		'parent_item_colon'   => __( 'Parent Item:', 'text_domain' ),
		'all_items'           => __( 'All Items', 'text_domain' ),
		'view_item'           => __( 'View Item', 'text_domain' ),
		'add_new_item'        => __( 'Add New Item', 'text_domain' ),
		'add_new'             => __( 'Add New', 'text_domain' ),
		'edit_item'           => __( 'Edit Item', 'text_domain' ),
		'update_item'         => __( 'Update Item', 'text_domain' ),
		'search_items'        => __( 'Search Item', 'text_domain' ),
		'not_found'           => __( 'Not found', 'text_domain' ),
		'not_found_in_trash'  => __( 'Not found in Trash', 'text_domain' ),
	);
	$args = array(
		'label'               => __( 'post_type', 'text_domain' ),
		'description'         => __( 'Post Type Description', 'text_domain' ),
		'labels'              => $labels,
		'supports'            => array( ),
		'taxonomies'          => array( 'category', 'post_tag' ),
		'hierarchical'        => false,
		'public'              => true,
		'show_ui'             => true,
		'show_in_menu'        => true,
		'show_in_nav_menus'   => true,
		'show_in_admin_bar'   => true,
		'menu_position'       => 5,
		'menu_icon'           => '',
		'can_export'          => true,
		'has_archive'         => true,
		'exclude_from_search' => false,
		'publicly_queryable'  => true,
		'capability_type'     => 'page',
	);
	register_post_type( 'post_type', $args );

}

// Hook into the 'init' action
add_action( 'init', 'custom_post_type', 0 );

Nos próximos artigos irei fazer um passo a passo completo para criação dos tipos personalizados de post comentando para que que serve cada uma das opções. Até a próxima!

*Eloi é desenvolvedor de Software na SWX

Imagem: Christopher Ross

Redes Sociais

Tags | ,

Enviar um Comentário