I temat White som jag jobbar med just nu bestämde jag mig för att slumpmässigt välja det foto som visas i headern. Jag valde också att göra det via PHP istället för javascript. På så vis är det optimerat för så många användare som möjligt. Om jag istället använt javascript, eller motsvarande, är det en del internetanvändare som inte kan se bilderna.

Den här lilla ”processen” görs i ett par steg vilka är dessa:

  1. Lokalisera och precisera den mapp du valt att placera bilderna i.
  2. Ange vilka format som ”sökningen” ska inkludera. I mitt fall är det jpg-, png- och gif-bilder.
  3. Lägg alla hittade bilder i en vektor
  4. Slumpa fram en av bilderna
  5. Visa bilden med passande html-kod

Jag tänkte göra det här så enkelt som möjligt. Såhär ser min kod ut:

$path = ”wp-content/themes/white/imgs/header/”;
$images = glob($path.”*.{jpg,png,gif}”, GLOB_BRACE);
shuffle($images);

echo "<img src='".$images[0]."'>";

Det är koden i sin helhet. Enkelt, eller hur? Men för er som inte riktigt hänger med tar jag det rad för rad.

På rad 1 lägger vi hel sökvägen till mappen med bilderna i en variabel med namnet path. Ligger koden i samma mapp som bilderna: sätt path till ingenting, dvs “”. Ligger koden i mappen ovanför blir det “images/” osv.

Rad 2 är själva kärnan i det här, och där händer det en hel del. Variabeln images tilldelas resultat av anropet till funktionen glob(). I det här fallet är det en vektor. Den första parametern vi skickar till glob() är vår path tillsammans med "*.{jpg,png,gif}". Den här koden betyder: Hitta filer med ändelserna jpg, png och gif. Stjärnan (*) visar att vi inte har några “filter” på filernas namn. Parameter nummer två är en så kalllad flagga. Det ger oss möjlighet att berätta för funktionen att vi vill göra något lite annat än vad som förväntas. GLOB_BRACE berättar att vi vill bryta upp allting inom { och } och tolka det som tre olika "sökningar".

Nu har vi alltså alla bilder ifrån mappen i vår vektor images. Nu ska vi välja ut en av dem. Funktionen shuffle() gör precis vad det låter som. Precis som shuffle-funktionen i din iPod så blandas hela listan, eller vektorn. Det första elementet i vektorn är nu alltså slumpmässigt utvalt.

Då behöver vi bara visa bilden med passande html-kod. Jag har valt att skriva ut koden direkt, men det självklart lika bra att returnera koden.

echo “<img src=’”.$images[0].”’>”;

Där har du det, enkelt men effektivt: Hur man slumpar fram en bild med PHP.