09 Oct

Cabecera aleatoria en WordPress

En uno de nuestros proyectos, la página Web www.movimientosdegenero.com, pensamos junto con la administradora del Blog la idea de una cabecera que cambiase aleatoriamente con cada cambio de página y que además fuese un proyecto participativo (base del 2.0). Lo que hicimos es que los visitantes pudieran enviar su foto y que ésta apareciese tanto en la cabecera de la Web como en una galería. Esta estrategia está acorde con el concepto de Neuromarketing que explicamos en una entrada anterior.

En lo que concierne a la parte técnica, la idea es cargar una imagen diferente cada vez que se llama al archivo PHP que carga el «header». Aunque la página donde lo hemos programado es un WordPress, se puede aplicar en cualquier proyecto Web con PHP. En nuestro caso pusimos el siguiente código en el archivo «header.php» del theme de WordPress:

$carpetaImagenes="rutaDelDirectorio"; //Guardamos todas las posibles cabeceras en el mismo directorio
$directorioImagenes=opendir($carpetaImagenes); //Abrimos el directorio
$cont=0; //Contador del número de imágenes
while ($imagen = readdir($directorioImagenes)) { //Recorremos todas las imagenes del directorio
  if($imagen != '.' and $imagen!='..'){ //No tenemos en cuenta el directorio actual (.) y el directorio superior (.)
    $imgDir[$cont]=$imagen; //Añadimos la imagen al array
    $cont++; //Contamos una más
  }
}
sort($imgDir); //Ordenamos el array (en nuestro caso lo necesitamos -> se puede borrar)
$ImgAzar=rand(0, $cont-1); //Elegimos un número aleatorio entre 0 y el número de imágenes (menos uno, que empezamos por cero)

Con el código anterior ya tenemos un array con todas las imágenes del directorio elegido y un número entero aleatorio.

Aunque cada uno lo podéis usar como creáis, en nuestro caso, hemos utilizado el siguiente código HTML para imprimir nuestra cabecera.:

<div style="background-image:url(rutaDelDirectorio/<?php echo $imgDir[$ImgAzar];?>);"> 
  <h1 class="titulo_cabecera"> <?php bloginfo('name'); ?> </h1>  
  <small class="contador"><?php $ImgAzar++; echo "$ImgAzar/$cuantasImg";?></small> 
</div>

 
Esperamos que la información os sea útil, para cualquier duda podéis preguntar en los comentarios.

Comparte

Comentarios (1)

Ameisez
28 abril, 2016 Reply

Excelente!!

Responder