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

Necesito un codigo facil y efectivo para cambiar el fondo al recargar la web

Estas en el tema de Necesito un codigo facil y efectivo para cambiar el fondo al recargar la web en el foro de WordPress en Foros del Web. blog: www.oyeeso.com Necesito un codigo facil para mostrar imagenes de fondo diferentes cada dia. Algunos codigos muestran las urls de todos los fondos que queremos ...
  #1 (permalink)  
Antiguo 14/01/2012, 23:03
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 16 años
Puntos: 5
Necesito un codigo facil y efectivo para cambiar el fondo al recargar la web

blog: www.oyeeso.com

Necesito un codigo facil para mostrar imagenes de fondo diferentes cada dia.
Algunos codigos muestran las urls de todos los fondos que queremos que aparesca, las urls se pueden ver si miras el codigo fuente pero, yo no quiero que al ver el codigo fuente se vean las urls de todos los fondos.

Algun codigo que no muestre las urls?.
Sencillo, efectivo?

Última edición por RGT; 14/01/2012 a las 23:32
  #2 (permalink)  
Antiguo 15/01/2012, 05:42
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 13 años, 3 meses
Puntos: 297
Respuesta: Necesito un codigo facil y efectivo para cambiar el fondo al recargar la w

Hay un par de plugins en wordpress que permiten editar el fondo con ciertas características. De todas formas, yo he escrito este código y funciona perfectamente:

Código PHP:
Ver original
  1. add_action('wp_print_styles', function() {
  2.  
  3.     #Carpeta donde se encuentra los fondos (/wp-content/themes/[...]).
  4.     $directorio = '/images/background/';
  5.    
  6.     #---- No editar  ---------------------------------------------------------
  7.  
  8.     list($dia, $imagen) = explode(';', urldecode($_COOKIE['background']));
  9.  
  10.     if ($dia != date('d')) {
  11.        
  12.         $fondos = scandir(get_stylesheet_directory() . $directorio);
  13.         $fondos = array_slice($fondos, 2);
  14.         $imagen = $fondos[array_rand($fondos)];
  15.        
  16.         setcookie('background', date('d') . ';' . $imagen);
  17.    
  18.     }
  19.    
  20.     $path = get_bloginfo('template_directory') . $directorio;  
  21.     echo "<style type='text/css'>body { background: url('$path$imagen') top center no-repeat; }</style>";
  22.  
  23. });

Sólo lo tienes que pegar en tu archivo functions.php de tu theme y editar el CSS del mismo para quitarle el fondo que tiene actualmente.
  #3 (permalink)  
Antiguo 15/01/2012, 11:21
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 16 años
Puntos: 5
Respuesta: Necesito un codigo facil y efectivo para cambiar el fondo al recargar la w

Hola, en la linea 13, cambio ese numero por el numero de fondos que tengo?

Ejemplo, si tengo 5 fotos que quiero mostrar de fondo, pongo en la linea 13 el numero 5?

Otra pregunta, ese codigo me cambia el fondo al recargar la web o cada dia te muestra un fondo diferente? ej, si entro hoy un fondo, si entro mañana otro fondo?
  #4 (permalink)  
Antiguo 15/01/2012, 11:35
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 13 años, 3 meses
Puntos: 297
Respuesta: Necesito un codigo facil y efectivo para cambiar el fondo al recargar la w

No, simplemente en la linea 4 tienes que decirle en que parte de tu carpeta del theme están los fondos.

Puedes poner la cantidad de imágenes que quieras en esa carpeta, el código buscará el sólo las mismas.
  #5 (permalink)  
Antiguo 15/01/2012, 12:50
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 16 años
Puntos: 5
Respuesta: Necesito un codigo facil y efectivo para cambiar el fondo al recargar la w

Bueno, gracias hermano!, ahora mismo lo pruebo!. =)
  #6 (permalink)  
Antiguo 15/01/2012, 14:01
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 16 años
Puntos: 5
Respuesta: Necesito un codigo facil y efectivo para cambiar el fondo al recargar la w

Tengo una ultima pregunta, esto cambia el fondo cuando se hace otro dia?
  #7 (permalink)  
Antiguo 15/01/2012, 14:12
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 13 años, 3 meses
Puntos: 297
Respuesta: Necesito un codigo facil y efectivo para cambiar el fondo al recargar la w

Sí, yo lo probé y funciona, pero puede darse el caso de que al día siguiente eliga aleatoriamente la misma imagen del día anterior.
  #8 (permalink)  
Antiguo 15/01/2012, 14:37
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 16 años
Puntos: 5
Respuesta: Necesito un codigo facil y efectivo para cambiar el fondo al recargar la w

Gracias, enseguida lo pruebo.
  #9 (permalink)  
Antiguo 15/01/2012, 22:28
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 16 años
Puntos: 5
Respuesta: Necesito un codigo facil y efectivo para cambiar el fondo al recargar la w

Hola, si se da el caso que quiero que el fondo cambie cada vez que se recargue la pagina, que debo cambiar en el codigo?
  #10 (permalink)  
Antiguo 16/01/2012, 04:56
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 13 años, 3 meses
Puntos: 297
Respuesta: Necesito un codigo facil y efectivo para cambiar el fondo al recargar la w

Código PHP:
Ver original
  1. add_action('wp_print_styles', function() {
  2.  
  3.     #Carpeta donde se encuentra los fondos (/wp-content/themes/[...]).
  4.     $directorio = '/images/background/';
  5.    
  6.     #---- No editar  ---------------------------------------------------------
  7.        
  8.     $fondos = scandir(get_stylesheet_directory() . $directorio);
  9.     $fondos = array_slice($fondos, 2);
  10.     $imagen = $fondos[array_rand($fondos)];
  11.    
  12.     $path = get_bloginfo('template_directory') . $directorio;  
  13.     echo "<style type='text/css'>body { background: url('$path$imagen') top center no-repeat; }</style>";
  14.  
  15. });
  #11 (permalink)  
Antiguo 16/01/2012, 07:55
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 16 años
Puntos: 5
Respuesta: Necesito un codigo facil y efectivo para cambiar el fondo al recargar la w

Hola, cuando pego el codigo en functions.php me sale un error. =( en la primera y ultima linea.
  #12 (permalink)  
Antiguo 16/01/2012, 08:05
Avatar de Nekko
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 3.141
Antigüedad: 16 años, 8 meses
Puntos: 656
Respuesta: Necesito un codigo facil y efectivo para cambiar el fondo al recargar la w

Pega el error para poder ayudarte mejor.
__________________
Taller para crear themes wordpress desde cero | Presupuestos para trabajos particulares vía MP
  #13 (permalink)  
Antiguo 16/01/2012, 08:15
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 16 años
Puntos: 5
Respuesta: Necesito un codigo facil y efectivo para cambiar el fondo al recargar la w

En dreamwevaer me sale en rojo la primera y ultima línea!.
  #14 (permalink)  
Antiguo 16/01/2012, 09:18
Avatar de Nekko
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 3.141
Antigüedad: 16 años, 8 meses
Puntos: 656
Respuesta: Necesito un codigo facil y efectivo para cambiar el fondo al recargar la w

Y en el navegador?
__________________
Taller para crear themes wordpress desde cero | Presupuestos para trabajos particulares vía MP
  #15 (permalink)  
Antiguo 16/01/2012, 09:37
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 16 años
Puntos: 5
Respuesta: Necesito un codigo facil y efectivo para cambiar el fondo al recargar la w

no probe el codigo en mi web, me sale en rojo en dreamweaver y lo quite de functions.php... me dio miedito jaja
  #16 (permalink)  
Antiguo 16/01/2012, 10:07
Avatar de Nekko
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Buenos Aires
Mensajes: 3.141
Antigüedad: 16 años, 8 meses
Puntos: 656
Respuesta: Necesito un codigo facil y efectivo para cambiar el fondo al recargar la w

Te recomiendo utilizar Notepad ++ e intentar entender lo que estás copiando. Este es un foro para enseñar y aprender. Te vas a ahorrar varios malentendidos.
__________________
Taller para crear themes wordpress desde cero | Presupuestos para trabajos particulares vía MP
  #17 (permalink)  
Antiguo 16/01/2012, 10:35
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 16 años
Puntos: 5
Respuesta: Necesito un codigo facil y efectivo para cambiar el fondo al recargar la w

Podrias probarlo?.... Nunca eh usado notepad ++, solamente me sale la primera y ultima linea en rojo.
  #18 (permalink)  
Antiguo 16/01/2012, 15:58
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 16 años
Puntos: 5
Respuesta: Necesito un codigo facil y efectivo para cambiar el fondo al recargar la w

alguien sabe si el codigo esta mal?
  #19 (permalink)  
Antiguo 17/01/2012, 05:35
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 13 años, 3 meses
Puntos: 297
Respuesta: Necesito un codigo facil y efectivo para cambiar el fondo al recargar la w

A mi personalmente me funciona el código, de todas forma para que te quedes tranquilo te explico que significa la primera y última línea con la documentación de Wordpress:

A la hora de desarrollar un plugin o añadir funciones, necesitas "enganchar (Hooks)" las mismas al Wordpress, podría ser por ejemplo un nuevo campo en los comentarios. En nuestro caso es CSS.

En Wordpress hay dos tipos de enganches/hooks, los Actions y Filters:
  • Actions: Como su nombre indica, es cuando se realiza una acción o "evento" de cualquier tipo, desde publicar una entrada hasta cuando se termina de cargar la barra de administración, por ejemplo.

  • Filters: Se puede interactuar con los texto/información que se recogen en Wordpress, por ejemplo, el texto de un comentario o un archivo adjunto de una entrada, entre otras cosas.

Como nosotro no queremos editar texto sino añadir un fondo de CSS, vamos a usar Actions para poder añadir acciones a Wordpress.

Existe una función de él llamada add_action(), en el primer argumento se especifica en donde queremos añadir el enganche/hook (existe un listado de ellos aquí y aquí (esta es más completa)), y el segundo qué acción va a realizar cuando haya enganchado/hook.

Como primer argumento yo he puesto el enganche/hook "wp_print_styles" para imprimr el CSS cuando wordpress carge y el segundo argumento es la función/acción que va a realizar.

En relación a la última linea, es el cierre del contenedor del add_action().



PD: Seguramente el Dreamweaver te pone esa línea en rojo porque desconoce la función add_action(). Casi ningún desarrollador web utiliza Dreamweaver, yo uso el Notepad++ ^^

PD2: Si quieres te explico que es lo que está escrito en la función.
  #20 (permalink)  
Antiguo 17/01/2012, 07:22
RGT
Usuario no validado
 
Fecha de Ingreso: noviembre-2008
Mensajes: 505
Antigüedad: 16 años
Puntos: 5
Respuesta: Necesito un codigo facil y efectivo para cambiar el fondo al recargar la w

Ah ok entiendo.
Entonces pego el codigo no importa si el dreamweaver lo marca en rojo?
  #21 (permalink)  
Antiguo 17/01/2012, 07:34
Avatar de hasdpk  
Fecha de Ingreso: agosto-2011
Ubicación: $spain->city( 'Arucas' );
Mensajes: 1.800
Antigüedad: 13 años, 3 meses
Puntos: 297
Respuesta: Necesito un codigo facil y efectivo para cambiar el fondo al recargar la w

Exacto sin ningún problema, pero recuerda que debes de eliminar el fondo que tienes actualmente (el gris).

Etiquetas: blog, facil, imagenes
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 19:22.