Como Criar Post Type (posts personalizados) com Categorias Personalizadas no WordPress

criar post types no Wordpress

Crie conteúdos personalizados conforme sua necessidade usando Post Type e Taxonomias no WordPress. Neste caso vou criar posts personalizados para Livros e taxonomia gênero para as categorias.

1 – Configuração

Primeiro abra o arquivo function.php do seu tema e copie o código abaixo e modifique onde está escrito livros ou livro, maimaiúsculas ou minúsculas para a expressão que se adequar ao seu projeto.

/* ----------------------- Post Type - Livros ------------------------*/
function custom_post_type_livros() {

	/**
	 * Post Type: Livros.
	 */

	$labels = [
		"name" => __( "Livros", "twentyseventeen" ),
		"singular_name" => __( "Livro", "twentyseventeen" ),
	];

	$args = [
		"label" => __( "Livros", "twentyseventeen" ),
		"labels" => $labels,
		"description" => "",
		"public" => true,
		"publicly_queryable" => true,
		"show_ui" => true,
		"delete_with_user" => false,
		"show_in_rest" => true,
		"rest_base" => "",
		"rest_controller_class" => "WP_REST_Posts_Controller",
		"has_archive" => true,
		"show_in_menu" => true,
		"show_in_nav_menus" => true,
		"delete_with_user" => false,
		"exclude_from_search" => false,
		"capability_type" => "post",
		"map_meta_cap" => true,
		"hierarchical" => false,
		"rewrite" => [ "slug" => "livros", "with_front" => true ],
		"query_var" => true,
		"menu_position" => 5,
		"menu_icon" => "dashicons-book-alt",
		"supports" => [ "title", "editor", "thumbnail", "excerpt", "trackbacks", "custom-fields", "comments", "revisions", "author", "page-attributes", "post-formats" ],
		"taxonomies" => [ "genero" ],
	];

	register_post_type( "livros", $args );
}

add_action( 'init', 'custom_post_type_livros' );

Ainda no arquivo functions.php cole o código abaixo para criar as taxonomias (categorias personalizadas). Onde está escrito gênero e genero mude para a expressão que se adeque ao seu projeto.

/* ------------------------------ Taxonomias - Genero -----------------------------*/
function custom_taxonomy_genero() {

	/**
	 * Taxonomy: Gêneros.
	 */

	$labels = [
		"name" => __( "Gêneros", "twentyseventeen" ),
		"singular_name" => __( "Gênero", "twentyseventeen" ),
	];

	$args = [
		"label" => __( "Gêneros", "twentyseventeen" ),
		"labels" => $labels,
		"public" => true,
		"publicly_queryable" => true,
		"hierarchical" => true,
		"show_ui" => true,
		"show_in_menu" => true,
		"show_in_nav_menus" => true,
		"query_var" => true,
		"rewrite" => [ 'slug' => 'livros', 'with_front' => true, ],
		"show_admin_column" => true,
		"show_in_rest" => true,
		"rest_base" => "genero",
		"rest_controller_class" => "WP_REST_Terms_Controller",
		"show_in_quick_edit" => true,
		];
	register_taxonomy( "genero", [ "livros" ], $args );
}
add_action( 'init', 'custom_taxonomy_genero' );

As Taxonomias são criadas para o Post Type para que as categorias de Posts não serão lidas neste post customizado e você poderá criar categorias próprias.

Você pode criar quantos Posts Types quiser, basta apenas fazer as alterações já faladas acima.

2 – Permalink

Agora precisamos configurar as urls para que possa ser mostrado os livros por taxonomia(categoria personalizada). Para isso instale e ative o plugin Custom Post Type Permalinks.

Feito isso vá em Configurações / Permalinks e role a tela até o final. Assim você vai ver o(s) post type(s) que você adicionou anteriormente no functions.php listados e deverá ser preenchido para completar a URL personalizada a taxonomia que neste caso é gênero.

Mas deve ser preenchida como na imagem abaixo, /%genero%/, depois é só salvar.

permalink para o post type

Pronto agora você já poderá cadastrar suas taxonomias (categorias personalizadas) e seus posts personalizados.

Deixe uma resposta

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