Gå til innhold

wordpress - random css


Anbefalte innlegg

Hei.

 

Jeg har fått til, med litt hjelp, en funksjon (vet ikke om det er helt riktig ord å bruke) som får bakgrunnen på wordpress themet mitt til å endre seg random per session..

 

Dette er hva jeg har i background.php:

 

<?php

session_start();

 

if(!$_SESSION['background'])

$_SESSION['background'] = 'url/portfolio/wp-content/themes/portfolio/background/background' . mt_rand(1, 5). '.jpg';

 

?>

 

I header.php har jeg:

 

<?php include("background.php");

?>

 

og

 

<body background="<?=$_SESSION['background']?>">

 

Dette fungerer som bare det, men jeg prøver å få det samme til med min css. Er ikke helt siker på hvordan jeg skal gjøre det.. Har prøvd litt forskjellig uten resultater..

 

Det jeg vil ha er random backgrounds og link colours slik at man aldri helt vet hvilken kombinasjon man får. Dette skal også være per session. Jeg har allerede fått til bakgrunnen, så det bør vel ikke være så vanskelig å få til det samme med css'en?

 

Er dette riktig måte å gjøre det på, eller finnes det bedre/smartere metoder?

 

Takk!

 

 

/Hans Jørgen

Lenke til kommentar
Videoannonse
Annonse

Hmm.. Er ny på dette så vet ikke helt hvordan jeg skal gjøre det, men skjønner hva du mener.

 

Kan man ikke gjøre det med mt_rand, som jeg har gjort med bakgrunnen?

 

Hvis jeg lager en fil som heter css.php, legger inn:

 

<?php
session_start();

if(!$_SESSION['randcss'])
$_SESSION['randcss'] = 'url/portfolio/wp-content/themes/portfolio/randcss/randcss' . mt_rand(1, 3). '.css';

?>

 

Så legger jeg inn randcss1.css, randcss2.css, randcss3.css i en mappe jeg kaller randcss.

 

<?php include("css.php");
?>

 

legger jeg øverst i min header.php

 

men hva skal jeg gjøre med $_SESSION['css']? Hvordan får jeg linket opp cssen?

Lenke til kommentar

er ikke helt sikker på oppbyggingen av wordpress, men i en av php filene (sikkert index.php) står det en linje som skriver ut linken til css filen.

Den ser typisk slik ut:

<link rel="stylesheet" type="text/css" media="screen" href="css/style.css" />

så hvis du da har en fil som heter style1.css style2.css osv må du legge disse filene i et array.

 

f.eks slik

$cssfiler=array("css/style.css", "css/style1.css") osv

 

Så må du lage en funksjon som henter ut en random ting fra dette arrayet ditt.

$randcss=array_rand($cssfiler)

 

Etterpå må du bytte ut linjen der du skriver ut

<link rel="stylesheet" type="text/css" media="screen" href="css/style.css" />

til noe slik:

 

echo "<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"$randcss\" />"

 

PS: dette er ikke testet, bare slik jeg tenker meg at det må bli :p

Lenke til kommentar

Ok.. Takk for svar! Men endres da cssen hver gang man oppdaterer eller går inn på en post?

 

Det vil jeg ikke.. det er derfor jeg bruker den andre metoden på bakgrunnen.. er du helt sikker på at jeg ikke kan bruke samme metode på cssen også?

Lenke til kommentar

Da kan du jo ha en session variabel som blir satt ja. f.eks $_SESSION['cssfil'];

 

 

så må du lage en if setning før du skriver ut linken til css filen

if(isset($_SESSION['cssfil'])){

$randcss=$_SESSION['cssfil'];

}

echo "<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"$randcss\" />"

 

 

Så må du jo selvfølgelig huske å sette $_SESSION['cssfil'] rett etter du har kjørt den array_rand saken.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...