Criando um tipo personalizado de Post “custom post type” no WordPress

Como criar pelo código um tipo personalizado de post “post type” no utilizando a função nativa register_post_type().

tipo personalizado de post com a função register_post_type

WordPress por padrão utiliza uma unica tabela para guardar diversos tipos de conteúdo.

Alguns dos post types que são nativos na .

  • Post
  • Páginas
  • Anexo
  • Revisão
  • Menu de navegação

Caso você não seja programador, aconselho que você utilize algum que já faça isso, será bem melhor.

Existem varias opções disponíveis no repositório do WordPress, busque por “CPT” ou “custom post type”.

Código Completo do CPT

Para registar um post type, utilizamos a função register_post_type

Adicione no arquivo functions. do seu tema.

/*
* Creating a function to create our CPT
*/

function custom_post_type() {

// Set UI labels for Custom Post Type
	$labels = array(
		'name'                => _x( 'Movies', 'Post Type General Name', 'twentythirteen' ),
		'singular_name'       => _x( 'Movie', 'Post Type Singular Name', 'twentythirteen' ),
		'menu_name'           => __( 'Movies', 'twentythirteen' ),
		'parent_item_colon'   => __( 'Parent Movie', 'twentythirteen' ),
		'all_items'           => __( 'All Movies', 'twentythirteen' ),
		'view_item'           => __( 'View Movie', 'twentythirteen' ),
		'add_new_item'        => __( 'Add New Movie', 'twentythirteen' ),
		'add_new'             => __( 'Add New', 'twentythirteen' ),
		'edit_item'           => __( 'Edit Movie', 'twentythirteen' ),
		'update_item'         => __( 'Update Movie', 'twentythirteen' ),
		'search_items'        => __( 'Search Movie', 'twentythirteen' ),
		'not_found'           => __( 'Not Found', 'twentythirteen' ),
		'not_found_in_trash'  => __( 'Not found in Trash', 'twentythirteen' ),
	);
	
// Set other options for Custom Post Type
	
	$args = array(
		'label'               => __( 'movies', 'twentythirteen' ),
		'description'         => __( 'Movie news and reviews', 'twentythirteen' ),
		'labels'              => $labels,
		// Features this CPT supports in Post Editor
		'supports'            => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ),
		// You can associate this CPT with a taxonomy or custom taxonomy. 
		'taxonomies'          => array( 'genres' ),
		/* A hierarchical CPT is like Pages and can have
		* Parent and child items. A non-hierarchical CPT
		* is like Posts.
		*/	
		'hierarchical'        => false,
		'public'              => true,
		'show_ui'             => true,
		'show_in_menu'        => true,
		'show_in_nav_menus'   => true,
		'show_in_admin_bar'   => true,
		'menu_position'       => 5,
		'can_export'          => true,
		'has_archive'         => true,
		'exclude_from_search' => false,
		'publicly_queryable'  => true,
		'capability_type'     => 'page',
	);
	
	// Registering your Custom Post Type
	register_post_type( 'movies', $args );

}


add_action( 'init', 'custom_post_type', 0 );

No exemplo, estamos criando o post type “Movies”.

Após incluso o código no arquivo do tema, recarregue o painel administrativo para ver a opção no menu “Movies”, com as mesmas características  do “Post”.

Tipo personalizado de Post

Post type são úteis pois permitem que você crie um cadastro completo no WordPress em poucos minutos.

O código acima é um pouco complexo, porém dominando a criação de Post Types, você será capaz de desenvolver grandes sites institucionais no WordPress, com dezenas de cadastros em poucos horas.

 

Um comentário sobre “Criando um tipo personalizado de Post “custom post type” no WordPress

Dúvidas? Faça um comentário logo abaixo ou envie uma mensagem clicando aqui.

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *