Come applicare più skin a un sito tramite il selettore "template" utilizzando lo switching dei fogli di stile?
Sto muovendo i primi passi con i template e ho alcune domande.
Innanzitutto, idealmente i miei template utilizzano la stessa struttura del tema principale, ma semplicemente usano un foglio di stile e immagini diversi.
Attualmente, il modo in cui permetto di cambiare l'aspetto del sito è tramite lo switching dei fogli di stile.
Ho semplicemente una cartella sotto il mio tema principale chiamata "styles", e sotto di essa ho una cartella per ciascuna delle mie "skin". All'interno di ogni cartella skin c'è uno style.css insieme ad alcune immagini.
Funziona così: ho inserito del codice nel file header.php del mio tema principale, in modo che legga il valore della skin attualmente attiva dal database delle opzioni, quindi carichi il foglio di stile per quella skin in questo modo...
Nell'esempio precedente, la skin attiva è "skin1" quindi sto sempre caricando...
"...mytheme/styles/". get_option('active_skin') ."style.css"
Questo funziona estremamente bene e mi permette di inserire un semplice widget per cambiare skin (un menu a tendina con anteprima) nel mio file function.php per permettere all'utente admin di passare facilmente tra diverse skin che cambiano completamente l'aspetto del sito.
La bellezza di questo approccio è che il tema selezionato e il markup sottostante rimangono invariati, quindi posso creare una varietà di stili utilizzando un markup prevedibile. Un po' come CSS Zen Garden. Stesso markup, migliaia di design. Tutto ciò che cambia è il foglio di stile e le immagini.
Tuttavia, l'unico svantaggio di questo approccio (almeno con WordPress) è che la skin selezionata viene applicata a tutto il sito. Non posso applicare una skin alla home page e una skin diversa a una pagina speciale che potrebbe necessitare di un aspetto completamente diverso.
Se ci fosse un modo per aggiungere del codice a ogni cartella skin in modo che appaia nel menu a tendina "template" nell'editor di pagina, potrei fare esattamente quello che voglio.
È possibile?

Certamente è possibile. Il metodo più rapido sarebbe aggiungere un campo personalizzato al postmeta (nell'area "Campi personalizzati" della pagina Modifica articolo/Modifica pagina) e nel tuo tema recuperare il valore utilizzando get_post_meta().
Il metodo leggermente meno rapido sarebbe aggiungere un wrapper a questo valore del Campo personalizzato inserendo il selettore del tuo tema in un meta box dell'articolo.

Stavo esaminando la scoperta automatica dei template di pagina per un'altra domanda, e ho scoperto che WordPress disabilita esplicitamente i file di template nelle sottodirectory. Dovrai trovare un altro modo, come utilizzare i campi personalizzati come suggerito da gabrielk, oppure fornire un'interfaccia utente per gli stessi meta campi utilizzando meta box personalizzati nell'area amministrativa.
