Posts em várias categorias diferentes single.php

4

Estou quebrando minha cabeça contra algum código. Aqui está a situação: Eu tenho um post em 3 categorias diferentes, este post tem que ser visível em "categoria 1" com o single1.php, em "categoria 2" com single2.php e em "categoria 3" com single3.php.

Obviamente, as 3 páginas single.php têm um modelo diferente dentro. Por exemplo, o single1.php mostra imagens e the_content (); single2.php mostra fotos e comentários; single3.php mostra as resenhas.

Eu sei que em single.php eu posso usar o if / else, mas não consigo descobrir se o mesmo post está em 3 categorias diferentes.

Alguma ajuda, por favor?

    
por Mark 20.10.2012 / 20:44

3 respostas

2

Em vez de especificá-lo, você pode usar formatos de postagem e usar diferentes modelos de conteúdo. Em single.php você pode escrever

<?php get_template_part( 'content', get_post_format() ); ?>

Em seguida, crie diferentes formatos de postagem

add_theme_support( 'post-formats', array( 'withpictures', 'withcomments' ) );

Em seguida, crie diferentes modelos de post-content-withpictures.php, content-withcomments.php

Ao criar conteúdo, o formato de postagem escolhido determinará o modelo.

    
por mirage 21.10.2012 / 09:51
3

Você pode usar o gancho de filtro para 'single_template'. Crie single-cat1.php, single-cat2.php e single-cat3.php (cat1, cat2 e cat3 são os nomes das categorias que devem ser substituídos pelos nomes das categorias)

function template_change( $template ){
    if( is_single() && in_category('cat1') ){
        $templates = array("single-cat1.php");
    } elseif( is_single() && in_category('cat2') ){
        $templates = array("single-cat2.php");
    } elseif( is_single() && in_category('cat3') ){
        $templates = array("single-cat3.php");
    }
    $template = locate_template( $templates );
    return $template;
}
add_filter( 'single_template', 'template_change' ); //'template_include'/'single_template'
    
por Md Toufiqul Islam 21.10.2012 / 09:46
0

Você pode alterá-lo no header.php se template usando single-cat1.php, header.php deve mudar a folha de estilo Ex:

<link rel="stylesheet" type="text/css" href="<?php bloginfo('template_url'); ?>/ca1.css">
    
por mikhoi 18.07.2013 / 05:36