Você quer aprender como criar facilmente tipos de posts personalizados no WordPress? Os tipos de posts personalizados transformam um site WordPress de uma plataforma de blog em um poderoso Sistema de Gerenciamento de Conteúdo ( CMS ).
Basicamente, eles permitem que você vá além de postagens e páginas, criando diferentes tipos de conteúdo para o seu site.
Neste artigo, mostraremos como criar facilmente tipos de posts personalizados no WordPress. Ensinaremos dois métodos e você pode escolher aquele que parecer mais fácil para você.
O que é o tipo de posts personalizados no WordPress?
Os tipos de posts personalizados são tipos de conteúdo, como postagens e páginas. Como o WordPress evoluiu de uma plataforma de blog simples para um CMS robusto, o termo post permaneceu nele. No entanto, um tipo de post pode ser qualquer tipo de conteúdo.
Por padrão, o WordPress vem com estes tipos de posts:
- Posts
- Página
- Anexo
- Revisão
- Menu
Você pode criar seus próprios tipos de posts personalizados e chamá-los do que quiser.
Por exemplo, se você tem um site de resenhas de filmes, provavelmente deseja criar um tipo de posts de resenhas de filmes. Este tipo de post pode ter diferentes campos personalizados e até mesmo sua própria estrutura de categoria personalizada.
Outros exemplos de tipos de posts são Portfólio, Depoimentos, Produtos, etc.
Muitos plugins populares do WordPress já usam tipos de posts personalizados para armazenar dados em seu site WordPress. A seguir estão alguns dos principais plugins que usam tipos de posts personalizados.
- WooCommerce – Adiciona um tipo de post personalizado de produto ao seu site WordPress.
- Fluent Forms – Cria um tipo de post wpforms para armazenar todos os seus formulários.
- MemberPress – Adiciona um tipo de post personalizado de produto memberpress .
Quando preciso de um tipo de post personalizado?
Os tipos de posts personalizados ajudam a organizar melhor o conteúdo de um site. Com eles você pode manter essas seções separadas dos outros artigos diários no blog.
Você também pode usar taxonomias personalizadas para eles, em vez de categorias ou tags.
Dito isso, vamos dar uma olhada em como criar facilmente tipos de posts personalizados no WordPress para seu próprio uso.
Método 1. Criando um tipo de post personalizado – A maneira mais fácil
A maneira mais fácil de criar um tipo de post personalizado no WordPress é usando um plugin. Este método é recomendado para iniciantes porque é seguro e super fácil.
A primeira coisa que você precisa fazer é instalar e ativar o plugin Custom Post Type UI . Após a ativação, o plugin irá adicionar um novo item de menu no seu menu no seu WordPress chamado CPT UI.
Agora vá para CPT UI » Tipos de post para criar um novo tipo de postagem personalizado.
Primeiro, você precisa fornecer um slug para seu tipo de post personalizado. Esse slug será usado na URL e em consultas do WordPress, portanto, pode conter apenas letras e números.
Abaixo disso, você precisa fornecer os nomes no plural e no singular para seu tipo de post personalizado.
Em seguida, você pode clicar opcionalmente no link que diz “Preencher rótulos adicionais com base nos rótulos escolhidos”. Isso preencherá o restante dos campos do rótulo abaixo.
Role para baixo até a seção “Rótulos adicionais” e, a partir daqui, você pode fornecer uma descrição para o seu tipo de post e alterar os rótulos.
Os rótulos serão usados em toda a interface do usuário do WordPress quando você estiver gerenciando conteúdo naquele tipo de post específico.
Em seguida, vem a opção de configurações de tipo de postagem. A partir daqui, você pode configurar diferentes atributos para o seu tipo de post. Cada opção vem com uma breve descrição explicando o que ela faz.
Por exemplo, você pode optar por não tornar um tipo de post hierárquico, como páginas, ou reverter cronologicamente, como posts.
Abaixo das configurações gerais, você verá a opção de selecionar quais recursos de edição este tipo de postagem suportaria. Basta marcar as opções que deseja incluir.
Por fim, clique no botão ‘Adicionar tipo de post' para salvar e criar seu tipo de post personalizado.
Isso é tudo, você criou com sucesso seu tipo de postagem personalizado. Você pode ir em frente e começar a adicionar conteúdo.
Mostraremos como exibir seu tipo de post personalizado em seu site posteriormente neste artigo.
Criando um tipo de post personalizado manualmente
O problema de usar um plugin é que seus tipos de posts personalizados desaparecerão quando o plugin for desativado. Todos os dados que você tiver nesses tipos de postagem personalizados ainda estarão lá, mas seu tipo de postagem personalizado não será registrado e não poderá ser acessado na área de administração.
Se você estiver trabalhando em um site de cliente e não quiser instalar outro plugin, você pode criar manualmente seu tipo de post personalizado, adicionando o código necessário no arquivo functions.php do seu tema ou em um plugin site-específico.
Primeiro, mostraremos um exemplo rápido e totalmente funcional para que você entenda como funciona. Dê uma olhada neste código:
// Our custom post type function function create_posttype() { register_post_type( 'filmes', // CPT Options array( 'labels' => array( 'name' => __( 'Filmes' ), 'singular_name' => __( 'Filme' ) ), 'public' => true, 'has_archive' => true, 'rewrite' => array('slug' => 'filmes'), 'show_in_rest' => true, ) ); } // Hooking up our function to theme setup add_action( 'init', 'create_posttype' );
O que esse código faz é registrar um tipo de post “filmes” com um array de argumentos. Esses argumentos são as opções de nosso tipo de post personalizado.
Este array tem duas partes, a primeira parte é rotulada, que por si só é um array. A segunda parte contém outros argumentos, como visibilidade pública, tem archive, slug e show_in_rest habilita o suporte ao editor de bloco.
Agora, vamos dar uma olhada em um trecho de código detalhado que adiciona mais opções ao seu tipo de post personalizado.
/* * Creating a function to create our CPT */ function custom_post_type() { // Set UI labels for Custom Post Type $labels = array( 'name' => _x( 'Filmes', 'Post Type General Name', 'twentytwenty' ), 'singular_name' => _x( 'Filme', 'Post Type Singular Name', 'twentytwenty' ), 'menu_name' => __( 'Filmes', 'twentytwenty' ), 'parent_item_colon' => __( 'Filme Pai', 'twentytwenty' ), 'all_items' => __( 'Todos os Filmes', 'twentytwenty' ), 'view_item' => __( 'Ver Filme', 'twentytwenty' ), 'add_new_item' => __( 'Adicionar Novo Filme', 'twentytwenty' ), 'add_new' => __( 'Adicionar Novo', 'twentytwenty' ), 'edit_item' => __( 'Editar Filme', 'twentytwenty' ), 'update_item' => __( 'Atualizar Filme', 'twentytwenty' ), 'search_items' => __( 'Pesquisar Filme', 'twentytwenty' ), 'not_found' => __( 'Não encontrado', 'twentytwenty' ), 'not_found_in_trash' => __( 'Não encontrado na lixeira', 'twentytwenty' ), ); // Set other options for Custom Post Type $args = array( 'label' => __( 'filme', 'twentytwenty' ), 'description' => __( 'Notícias e críticas de filmes', 'twentytwenty' ), '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( 'gêneros' ), /* 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' => 'post', 'show_in_rest' => true, ); // Registering your Custom Post Type register_post_type( 'filmes', $args ); } /* Hook into the 'init' action so that the function * Containing our post type registration is not * unnecessarily executed. */ add_action( 'init', 'custom_post_type', 0 );
Como você pode ver, adicionamos muito mais opções ao tipo de post personalizado com este código. Ele irá adicionar mais recursos, como suporte para revisões, imagem em destaque, campos personalizados e muito mais.
Também associamos esse tipo de post personalizado a uma taxonomia personalizada chamada gêneros.
Você também pode notar a parte onde definimos o valor hierárquico como falso. Se quiser que seu tipo de post personalizado se comporte como páginas, você pode definir esse valor como verdadeiro.
Outra coisa a se notar é o uso repetido da string twentytwenty, isso é chamado de domínio de texto. Se o seu tema estiver pronto para tradução e você quiser que seus tipos de posts personalizados sejam traduzidos, será necessário mencionar o domínio de texto usado por seu tema.
Você pode encontrar o domínio de texto do seu tema dentro do arquivo style.css no diretório do seu tema. O domínio do texto será mencionado no cabeçalho do arquivo.
Exibindo tipos de post personalizados em seu site
O WordPress vem com suporte integrado para exibir seus tipos de posts personalizados. Depois de adicionar alguns itens ao seu novo tipo de post personalizado, é hora de exibi-los em seu site.
Existem alguns métodos que você pode usar, cada um com seus próprios benefícios.
Exibindo tipo de post personalizado usando modelo de arquivo padrão
Primeiro, você pode simplesmente ir para Aparência » Menus e adicionar um link personalizado ao seu menu. Este link personalizado é o link para o seu tipo de post personalizado.
Se você estiver usando permalinks amigáveis para SEO, a URL do seu CPT provavelmente será algo assim:
http://exemplo.com/filmes
Se você não estiver usando permalinks amigáveis para SEO, seu URL de tipo de post personalizado será algo como este:
http://exemplo.com/?post_type=filmes
Não se esqueça de substituir exemplo.com por seu próprio nome de domínio e filmes por seu nome de tipo de post personalizado.
Salve seu menu e visite o frontend do seu site. Você verá o novo menu adicionado e, ao clicar nele, exibirá sua página de arquivo de tipo de postagem personalizado usando o arquivo de modelo archive.php em seu tema.
Usando modelos personalizados para arquivos CPT e entradas individuais
Se você não gostar da aparência da página de arquivo para o seu tipo de post personalizado, poderá usar um modelo dedicado para o tipo de arquivo de post personalizado.
Para fazer isso, tudo o que você precisa fazer é criar um novo arquivo no diretório do seu tema e nomeá-lo archive-filmes.php. Substitua filmes pelo nome do seu tipo de post personalizado.
Para começar, você pode copiar o conteúdo do archive.php arquivo do seu tema para um archive-filmes.php modelo, em seguida, começar a modificá-lo para atender às suas necessidades.
Agora, sempre que a página de arquivo para o seu tipo de post personalizado for acessada, este modelo será usado para exibi-lo.
Da mesma forma, você também pode criar um modelo personalizado para a exibição de entrada única do seu tipo de post. Para fazer isso, você precisa criar single-filmes.php em seu diretório de temas. Não se esqueça de substituir os filmes pelo nome do seu tipo de post personalizado.
Você pode começar copiando o conteúdo do single.php modelo do seu tema para o single-movies.php modelo e, em seguida, começar a modificá-lo para atender às suas necessidades.
Exibindo tipos de posts personalizados na home page
Uma vantagem de usar tipos de posts customizados é que isso mantém seus tipos de conteúdo customizados longe de seus posts regulares. No entanto, se quiser que eles sejam exibidos em seu post regular, você pode fazer isso adicionando este código ao arquivo functions.php do seu tema ou a um plugin site-específico:
add_action( 'pre_get_posts', 'add_my_post_types_to_query' ); function add_my_post_types_to_query( $query ) { if ( is_home() && $query->is_main_query() ) $query->set( 'post_type', array( 'post', 'filmes' ) ); return $query; }
Não se esqueça de substituir filme pelo seu tipo de post personalizado.
Consultando tipos de posts personalizados
Se você está familiarizado com a codificação e gostaria de executar consultas de loop em seus modelos, então aqui está como fazer isso.
Consultando o banco de dados, você pode recuperar itens de um tipo de post personalizado.
<?php $args = array( 'post_type' => 'filmes', 'posts_per_page' => 10 ); $the_query = new WP_Query( $args ); ?> <?php if ( $the_query->have_posts() ) : ?> <?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <h2><?php the_title(); ?></h2> <div class="entry-content"> <?php the_content(); ?> </div> <?php endwhile; wp_reset_postdata(); ?> <?php else: ?> <p><?php _e( 'Desculpe, nenhum post corresponde aos seus critérios.' ); ?></p> <?php endif; ?>
Neste código, primeiro, definimos o tipo de post e as postagens por página nos argumentos para nossa nova classe WP_Query.
Depois disso, executamos nossa consulta, recuperamos as postagens e as exibimos dentro do loop.
Exibindo tipos de posts personalizados em widgets
Você notará que existe um widget padrão no WordPress para exibir as postagens recentes, mas não permite que você escolha um tipo de postagem personalizada.
E se você quisesse exibir as entradas mais recentes de seu tipo de postagem recém-criado em um widget? Existe uma maneira fácil de fazer isso.
A primeira coisa que você precisa fazer é instalar e ativar o plugin Ultimate Posts Widget. Após a ativação, simplesmente vá para Appearance » Widgets e arraste e solte o widget Ultimate Posts em uma barra lateral.
Este poderoso widget permitirá que você mostre posts recentes de qualquer tipo de post. Você também pode exibir trechos de postagem com um link leia mais ou até mesmo mostrar uma imagem em destaque ao lado do título da post.
Configure o widget selecionando as opções desejadas e selecionando os tipo de posts personalizados. Depois disso, salve suas alterações e veja o widget em ação no seu site.
Mais ajustes avançados de tipo de posts personalizados
Há muito mais que você pode fazer com seus tipos de posts personalizados. Você pode aprender a adicionar seus tipos de posts personalizados no feed RSS principal ou criar um feed separado para cada tipo de post personalizado.
Esperamos que este artigo tenha ajudado você a aprender como criar tipos de posts personalizados no WordPress.