register_post_type() — Registrar Custom Post Type
Causa
O WordPress por padrão oferece apenas posts e páginas. Conteúdos como produtos, eventos ou portfólios precisam de CPTs dedicados.
Como resolver
Registre sempre no hook init com prioridade baixa (0 ou 1). Defina show_in_rest => true para compatibilidade com o editor de blocos (Gutenberg).
PHP
<?php
add_action('init', function () {
register_post_type('evento', [
'labels' => [
'name' => 'Eventos',
'singular_name' => 'Evento',
'add_new_item' => 'Novo evento',
'edit_item' => 'Editar evento',
'menu_name' => 'Eventos',
],
'public' => true,
'has_archive' => true,
'rewrite' => ['slug' => 'eventos'],
'supports' => ['title', 'editor', 'thumbnail', 'excerpt'],
'menu_icon' => 'dashicons-calendar-alt',
'menu_position' => 5,
'show_in_rest' => true,
]);
}, 0);