07
Dec

Hur man skapar olika bakgrunder på olika sidor i WordPress

8 Kommentarer | Kategori: Tutorials | Wordpress
Hur man skapar olika bakgrunder på olika sidor i WordPress

Har du nån gång funderat på att ha en annan bakgrund på dina sidor (pages) i WordPress och en annan på din förstasida. Nyligen gjorde jag en vanlig webbsida med WordPress som CMS och behövde precis vad jag nämnde nyss. Och med underbara WordPress finns det en lysande teknik hur du göra detta på ett enkelt och smidigt sätt. Så tänkte visa i detta exempel hur du har en skräddarsydd bakgrund på din första sida och en annan bakgrund på dina undersidor.

screen-1

Problemet

Som standard så anropar WP <?php get_header(); ?> på alla sina sidor. I vårat exempel vill vi ha en skräddarsydd bakgrund för förstasidan och en standard sida på resten av undersidorna. Det går självklart att göra med vanliga HTML men det vill vi inte – opraktiskt och osmidigt.

Så här ser det ut som standard i din header.php:

screen-2

Förstasidan och den är döpt till homepage.php:

screen-3

Lösningen

Vi kommer använda WP inbyggda “Conditional Tags”. Läs mer om Conditional Tags här.

Öppna din texteditor och lägg till header.php och din CSS fil från din tema mapp. Hitta
tagen <body> och ersätt den kod biten med den här.


<body id="<?php if (is_page_template ('homepage.php')){echo "home-bg";} ?>">

Eftersom att vi har skapat en specifik sida för förstasidan som vi döpte till homepage.php. Nya raden säger säger typ att: om detta är template hompage.php då ska vi echo (visa) ut stilen vi använder i CSS filen som heter #home-bg. Med #home-bg har vi lagt en skräddarsydd bakgrund som ska användas på förstasidan. Nu behöver vi en annan bakgrund för resten av sidorna och det gör vi genom att lägga in den direkt i body tagen i CSS filen.


body#home-bg	{
	background: url(style/images/bg.png) top center repeat-x;
	}

body {
	background: #fff url(style/images/page-bg.png) top center repeat-x;
	}

Använd flerfaldig bakgrunder på olika sidor

Du kanske vill ha fler olika bakgrunder beroende vart man är på sidan. Då skulle du kunna gör det på följande sätt. Som ovanför är is_page_template själva sidan och echo är stilen på sidan. Om ingen av följande sidor nämns så visas klassen #default.


<body id="<?php if (is_page_template('home.php')){
	echo "home";
	}
	elseif (is_page_template('contact.php')){
	echo "contact";
	}
	else {
	echo "default";
	}?>" >

Och din CSS kan se ut så här:


body#default {
	background:url(images/default-bg.jpg) top center no-repeat #000000;
}

body#home {
	background:url(images/home.png) top center no-repeat #000000;
}
body#contact {
	background:url(images/contact.png) top center no-repeat #000000;
}


Hitta mer innehåll från: ,

  • digg
  • delicious
  • stumbleupon
  • reddit
  • twitter
  • rss

8 Kommentarer

RSS kommentarer



  1. Väldigt bra artikel med kanontips. Tack för det..




  2. Bra skrivet. Vill bara nämna att det finns en kodsnutt som du kan använda i . Då slipper du använda dig av en massa if och elseif.




  3. Ser att taggarna inte svarade som du hade med i din kommentar Stefan. Är intresserad och höra vad du skulle säga, kan du lägga mellanslag på sluttagen så länge.

    Tack annars för kommentarerna!




  4. Absolut du har rätt. Det är faktiskt det man borde använda om man har senaste WP. Nu när du säger det så såg jag att body_class var nytt inför WP 2.8 när jag forskade runt men gick inte in så mycket på det.

    Tack för upplysningen.




  5. Bra tips! Väl skrivet Johan

Lämna en kommentar

Tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>