WordPress : Comment appliquez-vous plusieurs skins à un site via le sélecteur « templates » en utilisant le changement de feuille de style ?

Publié par Jean-Michel le

I’m just getting my feet wet with templates and have a few questions.

First, Ideally, my templates use the same structure as my main theme, however, they simply use a different stylesheet and images.

Currently, the way I allow changing the look of the site is with stylesheet switching.

I simply have a folder under my main theme called « styles », then under that I have a single folder for each of my « skins ». Inside each skin folder is a style.css along with some images.

The way it works is that I’ve placed some code in my main theme’s header.php file, so that it reads the value of the currently active skin from the options database, then loads the stylesheet for that skin like so…

In the above example, the active skin is « skin1 » so I’m always loading…

« …mytheme/styles/ ». get_option(‘active_skin’) . »style.css »

This works exceedingly well, and allows me to place a simple skin switcher widget (a pulldown menu with thumbnail display) inside my function.php file to allow the admin user to easily switch between several skins that completely change the look and feel of the site.

The beauty of this approach is that the selected theme and underlying markup remains unchanged, so I’m able to create a variety of styles using predictable markup. Sort of like CSS zen garden. Same markup, thousands of designs. All that changes is the stylesheet and images.

Cependant, le seul inconvénient de cette approche (du moins avec WordPress) est que le skin sélectionné s’applique à l’ensemble du site. Je ne parviens pas à appliquer un habillage à la page d’accueil et un habillage à une page spéciale qui pourrait nécessiter une apparence complètement différente.

S’il y avait un moyen d’ajouter du code à chaque dossier de skin pour qu’il apparaisse dans le menu déroulant « modèles » de l’éditeur de page, je serais capable de faire exactement ce que je veux.

Est-ce possible?

Solution n°1 trouvée

Je regardais juste la découverte automatique du modèle de page pour une autre question, et il s’avère que WordPress interdit explicitement les fichiers de modèle dans les sous-répertoires. Vous devrez procéder d’une autre manière, par exemple en utilisant des champs personnalisés comme gabrielk l’a suggéré, ou en fournissant une interface utilisateur aux mêmes champs méta à l’aide de boîtes méta personnalisées d’administration.

Solution n°2 trouvée

Bien sûr que c’est possible. Le moyen le plus rapide serait d’ajouter un champ personnalisé au postmeta (dans la zone « Champs personnalisés » de la page Modifier la publication/Modifier la page) et dans votre thème, obtenez la valeur à l’aide de get_post_meta().

Le moyen un peu moins rapide serait d’ajouter un wrapper à cette valeur de champ personnalisé en plaçant votre sélecteur de thème dans une méta-boîte de publication.

Catégories : Wordpress

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *