Menu

Posts Customizados no Wordpress - Custom posts types

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