it-swarm-pt.tech

Como você aplica vários skins a um site por meio do seletor "templates" usando a alternância de stylesheet?

Eu estou apenas começando meus pés molhados com modelos e tenho algumas perguntas.

Primeiro, Idealmente, meus modelos usam a mesma estrutura do meu tema principal, no entanto, eles simplesmente usam uma folha de estilo e imagens diferentes.

Atualmente, a maneira que eu permito mudar a aparência do site é com a mudança de folha de estilo.

Eu simplesmente tenho uma pasta sob o meu tema principal chamado "estilos", então sob isso eu tenho uma única pasta para cada uma das minhas "skins". Dentro de cada pasta skin é um style.css junto com algumas imagens.

A maneira como funciona é que eu coloquei alguns códigos no arquivo header.php do meu tema principal, para que ele leia o valor da skin atualmente ativa do banco de dados de opções, então carregue a folha de estilo para essa skin assim ...

No exemplo acima, a skin ativa é "skin1", então estou sempre carregando ...

"... mytheme/styles /". get_option ('active_skin'). "style.css"

Isso funciona muito bem e permite que eu coloque um widget de switcher de pele simples (um menu suspenso com exibição de miniaturas) dentro do meu arquivo function.php para permitir que o usuário administrador alterne facilmente entre vários skins que alteram completamente a aparência do site .

A beleza dessa abordagem é que o tema selecionado e a marcação subjacente permanecem inalterados, então eu posso criar uma variedade de estilos usando marcação previsível. Mais ou menos como CSS zen garden. Mesma marcação, milhares de designs. Tudo o que muda é a folha de estilo e as imagens.

No entanto, a desvantagem dessa abordagem (pelo menos com o WordPress) é que a skin selecionada é aplicada a todo o site. Não consigo aplicar uma capa à página inicial e uma capa a uma página especial que pode precisar de uma aparência e aparência completamente diferentes.

Se houvesse uma maneira de adicionar algum código a cada pasta de aparência para que ela aparecesse no menu suspenso "modelos" no editor de páginas, eu seria capaz de fazer exatamente o que eu queria.

Isso é possível?

1
Scott B

Claro que é possível. A maneira mais rápida seria adicionar um campo personalizado ao postmeta (na área "Campos Personalizados" da página Editar Postagem/Editar Página) e no seu tema obter o valor usando get_post_meta () .

A maneira um pouco menos rápida seria adicionar um wrapper a este valor de campo personalizado, colocando o seu seletor de tema em uma caixa de meta pós .

1
gabrielk

Eu estava apenas olhando para o autodiscovery modelo de página para outra pergunta, e verifica-se WordPress explicitamente não permitir arquivos de modelo em subdiretórios . Você terá que fazer isso de outra maneira, como usar campos personalizados, como gabrielk sugeriu, ou fazer uma interface com os mesmos campos de meta usando caixas de meta personalizadas de admin .

1
Annika Backstrom