Wordpress Avançado

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().

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.

 

Ver comentários

  • Caraca, legal o artigo bem explicado, gostei.

    Muito legal mesmo, bem explicado tirou minhas duvidas.

    Obrigaduuuuu

Post Recentes

Por que devo sempre manter o Magento 2 atualizado?

Segurança: Atualizações frequentes geralmente incluem patches de segurança para corrigir vulnerabilidades identificadas. Ao manter o Magento atualizado, você reduz significativamente…

1 mês atrás

Adicionar uma mensagem de Alerta ou Aviso do Admin do Magento 2

Como adicionar uma mensagem de Alerta ou Aviso do Admin do Magento 2 Injete o Magento\Framework\Message\ManagerInterface no construtor da sua…

1 mês atrás

Exibir mensagens erro/sucesso da Classe: Magento\Framework\Message\ManagerInterface

Para exibir as mensagens adicionadas na classe Magento\Framework\Message\ManagerInterface em um arquivo .phtml, você pode usar o seguinte código: <?php $objectManager…

1 mês atrás

Exportar as categorias do Magento 2 em um XML

Para criar um script no Magento 2 que exporte as categorias para um arquivo XML com o nome da categoria,…

2 meses atrás

Colocar um video como Background utilizando HTML + CSS

Para definir um vídeo MP4 como plano de fundo em um <div> usando HTML e CSS, você pode seguir estas…

4 meses atrás

Desativar o “lastname” no Magento 2

Como desativar o "lastname" no Magento 2 e Adobe Commerce Desativando a obrigatoriedade do campo Execute a SQL abaixo diretamente…

4 meses atrás