web-dev-qa-db-fra.com

Messages dans plusieurs catégories différentes single.php

Je me casse la tête contre du code. Voici la situation: J'ai un message dans 3 catégories différentes, ce message doit être visible dans "catégorie 1" avec single1.php, dans "catégorie 2" avec single2.php et dans "catégorie 3" avec single3.php. .

Il est évident que les 3 pages single.php ont un modèle différent à l’intérieur. Par exemple, single1.php affiche des images et the_content (); single2.php montre des images et des commentaires; single3.php montre les commentaires.

Je sais que dans single.php, je peux utiliser le if/else mais je ne peux pas savoir si le même message est dans 3 catégories différentes.

Toute aide s'il vous plaît?

4
Mark

Au lieu de rendre cette catégorie spécifique, vous pouvez utiliser des formats de publication et utiliser différents modèles de contenu. En single.php vous pouvez écrire

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

Puis créez différents formats de publication

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

Créez ensuite différents modèles de publication content-withpictures.php, content-withcomments.php

Lors de la création du contenu, le format de publication choisi déterminera le modèle.

2
mirage

Vous pouvez utiliser le crochet de filtre pour 'single_template'. Créez single-cat1.php, single-cat2.php et single-cat3.php (cat1, cat2 et cat3 sont les noms de catégorie qui doivent être remplacés par vos noms de catégorie)

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'
3
Md Toufiqul Islam

Vous pouvez le changer sur header.php si le modèle utilisant single-cat1.php, header.php doit modifier la feuille de style.

<link rel="stylesheet" type="text/css" href="<?php bloginfo('template_url'); ?>/ca1.css">
0
mikhoi