Pode ser que criar um post customizado seja algo necessário para seu novo tema. Por exemplo, eu precisei criar um site de casamento e para que o usuário pudesse cadastrar madrinhas e padrinhos, criei um Post Customizado ou em inglês Custom Posts Types.
Para que o wordpress saiba que você deseja criar um tipo de post customizado, precisamos informar nossa intenção no arquivo functions.php, criando uma função específica para isso e depois adicionando ela a alguma ação.
O código é parecido com esse:
function meu_tema_personalizado_registrando_post_customizado()
{
register_post_type('padrinhos',
array(
'labels' => array('name' => 'Madrinhas e Padrinhos'),
'public' => true,
'menu_position' => 0,
'supports' => array('title', 'editor', 'thumbnail'),
'menu_icon' => 'dashicons-admin-site'
)
);
}
add_action('init','meu_tema_personalizado_registrando_post_customizado');
O register_post_type possuí dois argumentos. O primeiro é o post_type, que é um identificador único para seu post customizado no qual poderemos referenciá-los mais tarde quando necessário. O segundo é um array de argumentos que informa as configurações básicas e o que precisamos suportar no nosso post customizado.
Nesse array de argumentos, o labels informa o nome que aparecerá no menu do wordpress.
A segunda opção informa que estará disponível para todos os usuários do site.
Na sequência dizemos a posição que nosso novo post customizado ocupará no menu inical do wordpress.
A opção de supports temos que informar o que terá no nosso post customizado.
Todas as entradas no menu inicial possuem um ícone, também podemos definir esse ícone com a entrada menu_icon
WP_Query
Para exibir o post customizado que criamos na página desejada, vamos usar o Loop do Wordpress de forma customizada. Precisamos alterar o loop para informar onde precisamos buscar os dados para o Loop.
Para fazer isso usamos a classe WP_Query.
$args = array('post_type' => 'padrinhos' ); //precisa ser o nome informado no register_post_type
$query = new WP_Query($args);
if ($query->have_posts()):
while($query->have_posts()): $query->the_post();
the_post_thumbnail();
the_title();
the_content();
endwhile;
endif;
Claro que sempre pode ser personalizado de acordo com as necessidades do seu post.
0 comentários:
Postar um comentário