WordPress vem com cinco tipos de posts predefinidos: postpageattachmentrevision, e menu.

Enquanto desenvolve o seu plugin, pode precisar de criar o seu próprio tipo de conteúdo específico: por exemplo, produtos para um website de comércio electrónico, trabalhos para um website de e-learning, ou filmes para um website de revisão.

Utilizando tipos de posts personalizados, pode registar o seu próprio tipo de post. Uma vez registado um tipo de mensagem personalizada, obtém um novo ecrã administrativo de alto nível que pode ser utilizado para gerir e criar mensagens desse tipo.

Para registar um novo tipo de mensagem, utiliza a função register_post_type().

Alert:
Recomendamos que coloque tipos de mensagens personalizadas num plugin em vez de num tema. Isto assegura que o conteúdo do utilizador permanece portátil mesmo que o tema seja alterado.

O seguinte exemplo mínimo regista um novo tipo de post, Produtos, que é identificado na base de dados como wporg_product.

function wporg_custom_post_type() {register_post_type('wporg_product',array('labels' => array('name' => __('Products', 'textdomain'),'singular_name' => __('Product', 'textdomain'),),'public' => true,'has_archive' => true,));}add_action('init', 'wporg_custom_post_type');

Expandir código fonte completoColapsar código fonte completo

Por favor visite a página de referência para register_post_type() para a descrição dos argumentos.

Aviso:
Tem de chamar register_post_type() antes do admin_init hook e depois do after_setup_theme hook. Um bom gancho a usar é o init gancho de acção.

Nomear Melhores Práticas #Nomear Melhores Práticas

É importante que prefira as suas funções e identificadores de tipo de posto com um prefixo curto que corresponda ao seu plugin, tema, ou website.

Aviso:
Certifique-se de que o seu identificador personalizado de tipo de postagem não excede 20 caracteres, pois a coluna post_type na base de dados é actualmente um campo VARCHAR desse comprimento.

Aviso:
Para assegurar a compatibilidade directa, não utilize wp_ como seu identificador – está a ser utilizado pelo núcleo do WordPress.

Aviso:
Se o seu identificador for demasiado genérico (por exemplo: “product“), pode entrar em conflito com outros plugins ou temas que tenham escolhido utilizar esse mesmo identificador.

Nota:
Solucionar identificadores de tipo de correio duplicado não é possível sem desactivar um dos tipos de correio em conflito.

Top

URLs #URLs

Um tipo de post personalizado obtém a sua própria lesma dentro da estrutura URL do sítio.

Um post do tipo wporg_product utilizará por defeito a seguinte estrutura URL: http://example.com/wporg_product/%product_name%.

wporg_product é a lesma do seu tipo de post personalizado e %product_name% é a lesma do seu produto em particular.

O permalink final seria a lesma do seu tipo de post personalizado: http://example.com/wporg_product/wporg-is-awesome.

P>Pode ver o permalink no ecrã de edição do seu tipo de postagem personalizada, tal como nos tipos de postagem padrão.

Um Slug personalizado para um tipo de post personalizado #Um Slug personalizado para um tipo de post personalizado

Para definir um slug personalizado para o slug do seu post personalizado digite todos é necessário adicionar uma chave => par de valores ao rewrite chave no register_post_type() conjunto de argumentos.

Exemplo:

function wporg_custom_post_type() {register_post_type('wporg_product',array('labels' => array('name' => __( 'Products', 'textdomain' ),'singular_name' => __( 'Product', 'textdomain' ),),'public' => true,'has_archive' => true,'rewrite' => array( 'slug' => 'products' ), // my custom slug));}add_action('init', 'wporg_custom_post_type');

Expandir código fonte completoColapsar código fonte completo

O acima exposto resultará na seguinte estrutura de URL:

Aviso:
Usar uma lesma genérica como products pode potencialmente entrar em conflito com outros plugins ou temas, por isso tente usar uma que seja mais específica para o seu conteúdo.

Nota:
Embora os identificadores personalizados de tipo de postagem, o problema da lesma duplicada pode ser facilmente resolvido trocando a lesma por um dos tipos de postagem em conflito.

Se o autor do plugin incluiu um apply_filters() chamar os argumentos, isto pode ser feito programmaticamente substituindo os argumentos submetidos através do register_post_type() function.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *