Foros del Web » Creando para Internet » Sistemas de gestión de contenidos » WordPress »

Crear pagina de opciones de un theme

Estas en el tema de Crear pagina de opciones de un theme en el foro de WordPress en Foros del Web. He creado un theme y estoy utilizando Setting API para crear una menu de opciones. Ya utilice esta API para crear un plugin y no ...
  #1 (permalink)  
Antiguo 01/04/2013, 18:13
laura_moreno14
Invitado
 
Mensajes: n/a
Puntos:
Crear pagina de opciones de un theme

He creado un theme y estoy utilizando Setting API para crear una menu de opciones.

Ya utilice esta API para crear un plugin y no me a resultado díficil crear las opciones y las paginas en el administrador. El problema lo tengo en que no se como utilizar las opciones para modificar el css.

Tengo que usar javascript? o hay alguna otra manera de hacerlo?
  #2 (permalink)  
Antiguo 01/04/2013, 21:36
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 2 meses
Puntos: 1146
Respuesta: Crear pagina de opciones de un theme

lo que yo suelo hacer, es detectar el evento submit y crear un archivo css por medio de php... de esa forma basta con vincular el archivo desde el theme

te dejo un codigo de ejemplo
Código PHP:
Ver original
  1. if(isset($_POST["BusinessBlue01_Slideshow_BGColor"])){
  2.     $Slideshow_height = $_POST["BusinessBlue01_Slideshow_height"].'px';
  3.     $Slideshow_BGColor = '#'.$_POST["BusinessBlue01_Slideshow_BGColor"];
  4.     $Slideshow_title = '#'.$_POST["BusinessBlue01_Slideshow_titlecolor"];
  5.     $Slideshow_txt = '#'.$_POST["BusinessBlue01_Slideshow_txtcolor"];
  6.     if($Slideshow_BGColor!=''){
  7.         $archivo = fopen(TEMPLATEPATH . '/custom.css', 'w');
  8.     fwrite($archivo, '.menu li:hover,.menu li.current_page_item{background:'.$Slideshow_BGColor.' url(img/menu-sel.png) bottom center;}#slidetop{background:'.$Slideshow_BGColor.';}#slidetop>ul{height:'.$Slideshow_height.';background:'.$Slideshow_BGColor.' url(img/bg-slide.png) no-repeat;}#slidetop>ul li{color:'.$Slideshow_txt.'}#slidetop h2{color:'.$Slideshow_title.'}');
  9.     }
  10.     else{
  11.         $archivo = fopen(TEMPLATEPATH . '/custom-css.css', 'w');
  12.     fwrite($archivo, '');
  13.     }
  14.    
  15. }

con el código anterior se crea un archivo llamado custom.css dentro de la carpeta del theme, con todo el contenido que requiero para mandarlo llamar justo debajo del archivo principal CSS y así sobrescribir los valores por jerarquía.

para mas referencia checate esta función de php
http://php.net/manual/es/function.fwrite.php

también puedes investigar sobre otros métodos de detectar el evento submit, yo no soy experto y no he tendió tiempo de revisar pero me parece que bastaría con
Código PHP:
Ver original
  1. if(isset($_POST)){
  #3 (permalink)  
Antiguo 02/04/2013, 09:52
laura_moreno14
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Crear pagina de opciones de un theme

La solución que planteas esta bien, podría crear otro archivo css y llamarlo después sobreescribiendo los estilos. Pero creo que tiene que haber (me gustaría que huebiera!) una forma mas eficiente de hacerlo sin añadir un segundo css.

Por cierto, alguien podria decirme si la mejor forma de hacer esto es con wp_enqueue_style?

Y podria ser la Theme Customization API lo que necesito? No acabo de entender muy bien si es para editar el theme o solo previsualizar.

Gracias por tu respuesta ArturoGallegos.
  #4 (permalink)  
Antiguo 04/04/2013, 04:14
Avatar de Nekko
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 3.141
Antigüedad: 16 años, 1 mes
Puntos: 656
Respuesta: Crear pagina de opciones de un theme

Yo uso este framework, hay un par dando vueltas muy simples y muy funcionales...

https://github.com/devinsays/options-framework-theme
__________________
Taller para crear themes wordpress desde cero | Presupuestos para trabajos particulares vía MP

Etiquetas: opciones, plugin, theme
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:53.