Mon client souhaite mettre en place une apparence spéciale pour chacune des pages de notre catégorie. Un peu comme des thèmes pour enfants ... elle souhaite déplacer l’image d’arrière-plan, modifier quelques graphiques et ajuster les couleurs en fonction de la catégorie visitée par l’utilisateur (horreur, romance, etc.).
Y a-t-il un moyen raisonnable de faire cela en plus de créer un modèle différent pour chaque page avec des styles CSS importés? Ou est-ce vraiment le seul moyen d'y parvenir?
UPDATE: Les réponses ci-dessous sont toutes excellentes. Pour nous, le plus simple était d’utiliser les classes spécifiques à une catégorie fournies par "body_class ()" pour remplacer les styles actuels.
Merci!
Si les modifications ne nécessitent pas de modifications du balisage HTML, vous pouvez le faire en chargeant conditionnellement des fichiers de style CSS supplémentaires. Voir Balises conditionnelles> Une page de catégorie et wp_enqueue_style()
dans le Codex.
La majeure partie de votre thème est composée de trois fichiers, header.php , footer.php et style.css .
Si vous souhaitez charger un en-tête, un pied de page et/ou une feuille de style alternatifs, mettez simplement à jour les appels appropriés dans le modèle de catégorie ( category.php ) pour extraire un autre en-tête/pied de page/feuille de style. .
Exemple.
get_header();
Devient.
get_header( 'cat' );
Inclurait alors header-cat.php au lieu de header.php .
Vous pouvez faire de même avec l'appel get_footer()
pour inclure un fichier de pied de page différent.
L'utilisation de fichiers d'en-tête/pied de page différents est décrite dans les pages Codex.
http://codex.wordpress.org/Function_Reference/get_header
http://codex.wordpress.org/Function_Reference/get_footer
Pour la feuille de style, changez simplement ceci (dans votre nouveau fichier d’en-tête).
<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" />
Pour quelque chose comme ..
<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_directory' ); ?>/style2.css" />
Ou bien, utilisez wp_enqueue_style
comme suggéré dans l'autre réponse.
HTML et CSS entièrement personnalisés sans effectuer aucun autre type de page (et aucune modification nécessaire de l'en-tête/du pied de page/de la feuille de style existante).