Foto aleatoria en WordPress

Objetivo del proyecto:
Lograr que las imágenes de la cabecera de mi WordPress se tomen aleatoriamente de mi Coppermine.

Hoy he terminado de montar un pequeño script que comencé ayer. La idea era cambiar las imágenes que me muestra WordPress en la cabecera, que si bien son monas, pero me gustan más las que yo hago, concretamente quería que las imágenes se cargarán desde un Coppermine que tengo montado. Para ello he indagado un poco y he encontrado una referencia para hacer algo parecido:

Ese código PHP simplemente hace uso de una función ya implementada en el Coppermine que se llama "get_pic_data(...)", tras buscar información sobre la misma en la documentación del código de la aplicación, (concretamente la función se puede ver aquí) he podido comprender su funcionamiento, parámetros que recibe y como los utiliza (es lo maravilloso de Software Libre).

Yo tome ese código original y lo he adaptado para que me devuelva aleatoriamente una imagen de uno de mis álbumes de mi Coppermine, dicho álbum es expresamente para almacenar estas cabeceras; por último sólo necesito tocar en el WordPress para que muestre la imagen a partir del script en cuestión en lugar de las que el tiene.

El código final después de las modificaciones es el siguiente:

He dejado al final comentado las líneas necesarias para mostrar una o todas las imágenes del álbum seleccionado, quizás sea útil.

Como comentaba en el WordPress hay que tocar un último detalle para que en vez de tomar las fotos que tiene por defecto, llame a mi nuevo script. Esto es muy simple desde la propia interfaz del WordPress editando el archivo "header.php" para cambiar que en lugar de mostrar la imagen devuelta por la función "header_image()" muestre la imagen que devuelve mi Script.

Esto mismo se puede hacer (y más elegante/bonito) desde mi punto de vista, en vez de tocando el header.php, editando el archivo "wp-includes/theme.php" para hacer que la funcion "header_image()" devuelva la ruta que llama a mi Script, el único inconveniente de esta segunda opcion es que hay que tener acceso al archivo "wp-includes/theme.php" (normalmente por FTP).

Por ultimo añadir que yo también he tocado el CSS del WordPress para hacer que el título de la web y demás salga encima del banner, ya que no me gusta que se desaproveche tanto espacio en la pantalla, citando a Juande (un ex-jefe mio del que aprendí muchísimo) "la pantalla es un recurso más, y como tal debe ser gestionado eficientemente".

La solución creada cumple con el objetivo inicialmente planteado. Y de hecho está funcionando ahora mismo.

Posibles mejoras:

  1. Sería interesante modificar mi Script para que corrija el MIME type del archivo devuelto y sea acorde a la imagen que se envía, actualmente el MIME type está fijo a "image/png", y las imagenes almacenadas en el Coppermine no tienen siempre ese formato, aunque yo lo suelo utilizar.
  2. Resultaría interesante hacer una modificación al Coppermine, de manera que no sea necesario subir expresamente los banners ya editados desde el PC, sino que al subir cualquier foto, pregunte si quieres sacar un banner a partir de ella, y en caso afirmativo, te muestre una interfaz en la propia web que te permita recortar la imagen subida y el Coppermine se encargue de crear la imagen/banner y guardarlo en el álbum correspondiente de "banners" (además de la imagen original).