it-swarm-es.com

¿Cómo se aplican varias máscaras a un sitio a través del selector de "plantillas" usando el cambio de hoja de estilo?

Me estoy mojando los pies con las plantillas y tengo algunas preguntas.

Primero, idealmente, mis plantillas usan la misma estructura que mi tema principal, sin embargo, simplemente usan una hoja de estilos e imágenes diferentes.

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

Simplemente tengo una carpeta debajo de mi tema principal llamada "estilos", luego debajo tengo una sola carpeta para cada una de mis "máscaras". Dentro de cada carpeta de máscara hay un style.css junto con algunas imágenes.

La forma en que funciona es que he colocado algo de código en el archivo header.php de mi tema principal, para que lea el valor del skin activo actualmente de la base de datos de opciones, luego carga la hoja de estilos para ese skin como ...

En el ejemplo anterior, la máscara activa es "skin1", por lo que siempre estoy cargando ...

"... mitema/estilos /". get_option ('active_skin'). "style.css"

Esto funciona extremadamente bien, y me permite colocar un widget de cambio de máscara simple (un menú desplegable con visualización de miniaturas) dentro de mi archivo function.php para permitir al usuario administrador cambiar fácilmente entre varias máscaras que cambian completamente la apariencia del sitio .

La belleza de este enfoque es que el tema seleccionado y el marcado subyacente permanecen sin cambios, por lo que puedo crear una variedad de estilos utilizando el marcado predecible. Algo así como CSS Zen Garden. Mismo marcado, miles de diseños. Todo lo que cambia es la hoja de estilo y las imágenes.

Sin embargo, la única desventaja de este enfoque (al menos con WordPress) es que la máscara seleccionada se aplica a todo el sitio. No puedo aplicar una máscara a la página de inicio y otra a una página especial que pueda necesitar un aspecto y sensación completamente diferentes.

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

Es posible?

1
Scott B

Claro que es posible. La forma rápida sería agregar un campo personalizado al postmeta (en el área de "Campos personalizados" de la página Editar publicación/Editar página) y en su tema obtener el valor usando get_post_meta () .

La forma un poco menos rápida sería agregar un envoltorio a este valor de Campo personalizado colocando el selector de tema en un cuadro de meta de publicación .

1
gabrielk

Estaba mirando el autodiscovery de la plantilla de la página para otra pregunta, y resulta que WordPress deshabilita explícitamente los archivos de plantilla en los subdirectorios . Tendrá que hacerlo de otra manera, como usar campos personalizados como sugirió gabrielk, o proporcionar una interfaz de usuario para los mismos campos de metadatos utilizando cuadros de administración personalizados .

1
Annika Backstrom