Mostrar una imagen aleatoria

This post was published 9 years ago. It may be exremely outdated.
Una imagen y un enlace aleatorio

Una imagen y un enlace aleatorio

El año pasado expliqué como mostrar una par de imágenes al azar mediante PHP. Hoy explicaré como mostrar un enlace aleatorio con una imagen aleatoria mediante un array y PHP.

La matriz tendrá un índice numérico que contendrá una nueva matriz, esta vez con dos índices: URL e IMG_URL, que indicarán la URL del enlace y la URL de la imagen, respectivamente. Mediante la función rand obtendremos un número aleatorio entre el primer índice de la matriz (0) y el último (determinado por el puntero de la matriz). Después moveremos el puntero interno de la matriz al último elemento y a continuación crearemos una nueva variable que almacene la matriz que contiene el índice N (donde N es el número aleatorio obtenido previamente) de la primera matriz.

El código de la matriz de mi ejemplo será el siguiente (que debe colocarse el principio del archivo, así se puede mostrar la imagen en cualquier otro lugar del archivo):

<?php
// Primer elemento de la matriz
$array[] = array(
'URL' => 'http://sumolari.com',
'IMG_URL' => 'http://sumolari.com/demos/imagen-aleatoria/img/sumolari.png'
);
// Segundo elemento de la matriz
$array[] = array(
'URL' => 'http://sumolari.com/mostrar-una-imagen-aleatoria/',
'IMG_URL' => 'http://sumolari.com/demos/imagen-aleatoria/img/tutorial.png'
);
// Tercer elemento de la matriz
$array[] = array(
'URL' => 'http://google.com',
'IMG_URL' => 'http://sumolari.com/demos/imagen-aleatoria/img/google.png'
);
// Movemos el puntero al último element
end($array);
// Calculamos el último índice
$last_key = key($array);
// Calculamos un número al azar entre 0 y el último índice
$key = rand(0, $last_key);
// Almacenamos los datos de la imagen que vamos a mostrar
$item = $array[$key];
?>

Y a continuación sólo tendremos que mostrar el enlace, usando un código como el siguiente:

<a href="<?php echo $item['URL']; ?>"><img src="<?php echo $item['IMG_URL']; ?>"  /></a>

La ventaja de este script comparado con el anterior es que en éste podemos mostrar un enlace y podemos definir la URL a la imagen, lo cual lo hace más flexible. Además podemos añadir tantas imágenes como queramos a la matriz sin preocuparnos por adaptar el script, ya que el último índice se calcula de forma dinámica.

Podéis ver un ejemplo del funcionamiento en esta página. Si tenéis cualquier duda con el tutorial, no dudéis en preguntarla en los comentarios.

3 Responses to Mostrar una imagen aleatoria

¡Buen tutorial! Pero tengo una dudilla. Yo por ejemplo me gustaría hacer que la imagen sea aleatoria en la sidebar de un theme en WordPress, entonces, ¿dónde coloco el código PHP? Porque WordPress sólo permite código HTML arbitrario en los widgets. 🙂

Es que el código tienes que añadirlo al archivo sidebar.php de tu theme (o donde quieras ponerlo). Si te fijas, lo he puesto en el tutorial un par de veces).

Aunque de todos modos dentro de un rato (lo que tarde en escribirlo) escribiré un artículo explicando cómo añadir imágenes aleatorias a un plugin de WordPress usando sólo HTML arbitrario, algo como:

<code>
[RANDOM_IMG]
URL||IMG_URL[]
URL2||IMG_URL2[]
[[SHOW_IMG]]
[/RANDOM_IMG]
</code>

Leave a Reply