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?
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.
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'
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">