Você quer aprender como criar facilmente tipos de postagem personalizados no WordPress?

Tipos de postagem personalizados permitem que você vá além de postagens e páginas e crie diferentes tipos de conteúdo para seu site. Eles transformam seu site WordPress de uma plataforma de blog em um poderoso sistema de gerenciamento de conteúdo ( CMS ).

Neste artigo, mostraremos como criar facilmente tipos de postagem personalizados no WordPress.

O que é o tipo de postagem personalizada no WordPress?

Em seu site WordPress , os tipos de postagem são usados ​​para ajudar a distinguir entre diferentes tipos de conteúdo no WordPress. Postagens e páginas são tipos de postagem, mas são feitas para servir a propósitos diferentes.

O WordPress vem com alguns tipos de postagem diferentes por padrão:

  • Publicar
  • Página
  • Acessório
  • Revisão
  • Menu de navegação

Você também pode criar seus próprios tipos de postagem, conhecidos como tipos de postagem personalizados. Eles são úteis ao criar conteúdo que tenha um formato diferente de uma postagem ou página padrão.

Criando um tipo de postagem personalizado manualmente

Se você estiver trabalhando no site de um cliente e não quiser instalar outro plug-in, poderá criar manualmente seu tipo de postagem personalizado adicionando o código necessário no arquivo functions.php do seu tema ou em um plug-in específico do site.

Primeiro, mostraremos um exemplo rápido e totalmente funcional para que você entenda como funciona. Dê uma olhada neste código:

// Nossa função de tipo de postagem personalizada
function create_posttype() {
  
    register_post_type( 'movies',
    // Opções CPT
        array(
            'labels' => array(
                'name' => __( 'Movies' ),
                'singular_name' => __( 'Movie' )
            ),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug' => 'movies'),
            'show_in_rest' => true,
  
        )
    );
}
// Conectando nossa função à configuração do tema
add_action( 'init', 'create_posttype' );

Este trecho de código registra o tipo de postagem ‘movies’ com uma matriz de argumentos. Esses argumentos são as opções do nosso tipo de postagem personalizado.

A matriz tem duas partes. A primeira parte é rotulada e ela própria é uma matriz. A segunda parte contém outros argumentos como publicvisibilidade, has_archiveslugshow_in_rest, que habilita o suporte ao editor de blocos.

Vamos dar uma olhada no código mais detalhado que adiciona opções adicionais ao seu tipo de postagem personalizado:

/*
* Criando uma função para criar nosso CPT
*/
  
function custom_post_type() {
  
// Definir rótulos de interface do usuário para o tipo de postagem personalizado
    $labels = array(
        'name'                => _x( 'Filmes', 'Post Type General Name', 'twentytwentyone' ),
        'singular_name'       => _x( 'Filme', 'Post Type Singular Name', 'twentytwentyone' ),
        'menu_name'           => __( 'Filmes', 'twentytwentyone' ),
        'parent_item_colon'   => __( 'Filme pai', 'twentytwentyone' ),
        'all_items'           => __( 'Todos os filmes', 'twentytwentyone' ),
        'view_item'           => __( 'Ver filme', 'twentytwentyone' ),
        'add_new_item'        => __( 'Adicionar novo filme', 'twentytwentyone' ),
        'add_new'             => __( 'Adicionar novo', 'twentytwentyone' ),
        'edit_item'           => __( 'Editar filme', 'twentytwentyone' ),
        'update_item'         => __( 'Atualizar filme', 'twentytwentyone' ),
        'search_items'        => __( 'Pesquisar filme', 'twentytwentyone' ),
        'not_found'           => __( 'Não encontrado', 'twentytwentyone' ),
        'not_found_in_trash'  => __( 'Não encontrado na lixeira', 'twentytwentyone' ),
    );
      
// Defina outras opções para o tipo de postagem personalizada
      
    $args = array(
        'label'               => __( 'filmes', 'twentytwentyone' ),
        'description'         => __( 'Notícias e resenhas de filmes', 'twentytwentyone' ),
        'labels'              => $labels,
        // Recursos que este CPT suporta no Editor de postagem
        'supports'            => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ),
        // Você pode associar este CPT a uma taxonomia ou taxonomia personalizada.
        'taxonomies'          => array( 'genres' ),
        /* Um CPT hierárquico é como as Páginas e pode ter
         * Itens pai e filho. Um CPT não hierárquico
         * é como Postagens.
        */
        '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'     => 'post',
        'show_in_rest' => true,
  
    );
      
    // Registrando seu tipo de postagem personalizada
    register_post_type( 'filmes', $args );
  
}
  
/* Conecte-se à ação 'init' para que a função
* Contendo nosso registro de tipo de postagem não é
* executado desnecessariamente.
*/
  
add_action( 'init', 'custom_post_type', 0 );

Como você pode ver, adicionamos muitas outras opções ao tipo de postagem personalizada com este código. Ele adicionará mais recursos, como suporte para revisões, imagens em destaque, campos personalizados e muito mais.

Também associamos esse tipo de postagem personalizado a uma taxonomia personalizada chamada ‘genres’.

Você também pode observar a parte em que definimos o valor hierárquico como false. Se você quiser que seu tipo de postagem personalizado se comporte como o Pages, defina esse valor como true.

Outra coisa a notar é o uso repetido da twentytwentyone  string, isso é chamado de ‘domínio de texto’. Se o seu tema estiver pronto para tradução e você quiser que seus tipos de postagem personalizados sejam traduzidos, será necessário mencionar o domínio de texto usado pelo seu tema.

Você pode encontrar o domínio de texto do seu tema dentro do style.cssarquivo no diretório do seu tema. O domínio do texto será mencionado no cabeçalho do arquivo.

Você pode gostar também desse: