it-swarm-pt.tech

Tipos de postagem personalizados em páginas de categoria

Estou trabalhando com um tipo de postagem personalizado que usa as categorias normais do WordPress.
Eu posso modificar meu modelo de categoria para exibir meus tipos de postagem personalizados exatamente como eu os quero.

O problema é que, depois de fazer isso, as postagens normais do blog também são afetadas.

É claro que posso limitar os posts normais ou o tipo de post a apenas uma categoria e criar um ID-categoria.php para trabalhar apenas com essa categoria.

Mas eu estou querendo saber se existe uma solução mais flexível?
É possível criar modelos de categoria específicos para tipos de postagem, por exemplo, um para exibir postagens, um para mostrar tipos de postagens personalizadas etc.?

isso é possível em tudo? Se não, qual é a melhor maneira de contornar isso?

6
Kelvin Jayanoris

Para tipos de postagem personalizados com taxonomia personalizada, você pode criar um modelo para essa taxonomia. Seu modelo de taxonomia personalizada seria denominado taxonomy-{taxonomy}.php. Por exemplo, se sua taxonomia fosse chamada de "categorias de cozinha", você nomearia seu arquivo taxonomy-cooking-categories.php.

Mais informações sobre arquivos de modelo para arquivos de taxonomia especial podem ser encontradas no codex aqui: http://codex.wordpress.org/Template_Hierarchy#Custom_Taxonomies_display

6
eileencodes

Você pode se basear no tipo de postagem da seguinte maneira: digamos que você tenha category.php para postagens regulares e your-custom-type-category.php para suas postagens de tipo de post personalizado, depois basta adicionar isso à sua regular category.php no topo.

<?php if (have_posts()){
    the_post();
    if( 'your_custom_type' == get_post_type( $post ) ) {
        rewind_posts();
        get_template_part('your-custom-type-category');
        exit();
    }
    rewind_posts();
}
?>

e agora, sempre que uma categoria for solicitada, ela verificará seu tipo de postagem personalizado e, se encontrada, ela usará seu your-custom-type-category.php como modelo e todas as postagens comuns serão exibidas usando category.php sem nenhuma alteração.

Espero que isto ajude

4
Bainternet

Oi @ Kelvin Jayanoris:

Existe uma razão pela qual você não pode simplesmente testar o valor de $post->post_type com uma instrução if..elseif dentro de seu Loop , desta forma:

<?php if ($post->post_type=='foo'): ?>

   Put HTML for 'foo' post type here...

<?php else if ($post->post_type=='bar'): ?>

   Put HTML for 'bar' post type here...

<?php else if ($post->post_type=='post'): ?>

   Put HTML for 'post' post type here...

<?php endif; ?>

Ou se houver algum motivo para você não criar sua própria hierarquia de nomes de arquivos na forma de nomes de arquivos como post-foo.php, post-foo.php, post-post.php, também dentro do seu Loop? Esse tipo de código poderia fazer isso por ele:

<?php include("post-{$post->post_type}.php"); ?>
1
MikeSchinkel