web-dev-qa-db-fra.com

Comment puis-je créer un article appartenant à une catégorie ou avoir des tags spécifiques, un affichage différent des autres articles simples?

Comment puis-je faire en sorte qu'un seul message soit différent des autres lorsque je l'ajoute à une catégorie spécifique?.

exemple: j'ai un article en 3 catégories: musique, chansons et clips vidéo. Je veux que chaque fois que j'ajoute un post dans la catégorie "chansons", il sera affiché différemment de tous les autres posts simples par défaut qui n'appartiennent pas à la catégorie chansons. Comment puis je faire ça? En outre, la même chose peut-elle arriver avec des balises? Ce qui veut dire que lorsque j'ajoute à un article des tags spécifiques, peut-il changer le modèle de l'article?

1
Alex

avec CSS : si votre thème utilise post_class() sur un élément conteneur, vous pouvez cibler cet élément avec le classe .category-songs pour contrôler le style.

Avec un filtre de modèle : ajoutez un filtre à single_template et vérifiez les catégories attribuées à votre catégorie songs, et utilisez le template songs-single.php si cette catégorie est trouvée:

function wpse_check_single_categories( $template = '' ){
    $categories = get_the_category();
    foreach( $categories as $cat ):
        if( $cat->name == 'songs' ):
            $template = locate_template( array( "songs-single.php", $template ), false );
        endif;
    endforeach;
    return $template;
}
add_filter( 'single_template', 'wpse_check_single_categories' );
1
Milo