Cómo aplicar múltiples skins a un sitio mediante el selector de "plantillas" usando cambio de hojas de estilo

10 sept 2010, 18:30:17
Vistas: 764
Votos: 1

Estoy comenzando a trabajar con plantillas y tengo algunas preguntas.

Primero, idealmente, mis plantillas usan la misma estructura que mi tema principal, pero simplemente utilizan una hoja de estilo e imágenes diferentes.

Actualmente, la forma en que permito cambiar el aspecto del sitio es mediante el cambio de hojas de estilo.

Simplemente tengo una carpeta bajo mi tema principal llamada "styles", y dentro de ella tengo una carpeta para cada uno de mis "skins". Dentro de cada carpeta de skin hay un style.css junto con algunas imágenes.

La forma en que funciona es que he colocado algún código en el archivo header.php de mi tema principal, para que lea el valor del skin activo actual desde la base de datos de opciones, y luego cargue la hoja de estilo para ese skin así...

En el ejemplo anterior, el skin activo es "skin1" así que siempre estoy cargando...

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

Esto funciona extremadamente bien, y me permite colocar un widget simple de selector de skin (un menú desplegable con visualización de miniaturas) dentro de mi archivo function.php para permitir al usuario administrador cambiar fácilmente entre varios skins que cambian completamente el aspecto del sitio.

Lo bueno de este enfoque es que el tema seleccionado y el marcado subyacente permanecen sin cambios, por lo que puedo crear una variedad de estilos usando marcado predecible. Algo así como CSS zen garden. El mismo marcado, miles de diseños. Todo lo que cambia es la hoja de estilo y las imágenes.

Sin embargo, la desventaja de este enfoque (al menos con WordPress) es que el skin seleccionado se aplica a todo el sitio. No puedo aplicar un skin a la página de inicio y otro skin a una página especial que podría necesitar un aspecto completamente diferente.

Si hubiera una manera de agregar algún código a cada carpeta de skin para que aparezca en el menú desplegable de "plantillas" en el editor de páginas, podría hacer exactamente lo que quiero.

¿Es esto posible?

0
Todas las respuestas a la pregunta 2
0

Claro que es posible. La forma rápida sería añadir un campo personalizado al postmeta (en el área de "Campos Personalizados" de la página Editar Entrada/Editar Página) y en tu tema obtener el valor usando get_post_meta().

La forma un poco menos rápida sería añadir un envoltorio a este valor de Campo Personalizado colocando tu selector de tema en un meta box de entrada.

10 sept 2010 19:56:35
1

Estaba revisando el descubrimiento automático de plantillas de página para otra pregunta, y resulta que WordPress explícitamente no permite archivos de plantilla en subdirectorios. Tendrás que buscar otra solución, como usar campos personalizados como sugirió gabrielk, o implementar una interfaz de usuario para los mismos campos meta utilizando cajas meta personalizadas en el administrador.

10 sept 2010 20:06:07
Comentarios

todavía podrías hacer un redireccionamiento de plantilla (supongo - nunca lo he intentado).

kaiser kaiser
16 mar 2011 23:12:56