Hovednavigation

php.gif

De mest populærere blog indlæg her på siden har længe været mine PHP Include Tutorials, og flere har efterspurgt en nem måde at lave forskellige title Tags og metatags for de enkelte sider. Dette er noget der er utroligt vigtigt når det kommer til søgemaskineoptimering (SEO), så derfor vil jeg i denne tutorial gennemgå en forholdsvis simpel måde at differentiere dine include sider.

Tutorialen forudsætter at du har læst som minimum Dynamiske sider med PHP include og også gerne Videre med PHP Include da denne tutorial bygger videre på sidstnævnte. Hvis du ikke gidder læse de to blogindlæg så hent dette eksempel: eksempel 3 - dynamiske sider

Metatags der bør være forskellige


<title></title>
<meta content="" name="Description" />
<meta content="" name="Keywords" />

Title er titlen på dokumentet, bør være sigende for det pågælende dokument og altså ikke bare en overordnet titel for hele dit website. Det samme gør sig gældende for Desription og Keywords, hvor førstnævnte er en kort beskrivelse af indholdet i dokumentet, mens keywords er en kommasepereret liste af stikord der passer på indholdet af siden

Forskellige muligheder

Som altid har vi forskellige muligheder, de mest åbenlyse er nok:

  • Kode det manuelt - en masse IF-THEN-ELSE eller switch
  • Database løsning
  • Lave noget virkelig virkelig smart

Der er fordele og ulemper ved alle disse løsninger, at kode det 100% manuelt er måske det mest simple og det letteste for de fleste, mens en databaseløsning måske er lettere at vedligeholde i længden, men også lidt overkill for en lille side. Den virkelig virkelig smarte løsning gemmer vi lige lidt.

Manuelt eksempel

I mine PHP Include tutorials gemmes siden der skal loades altid i variablen $side, derfor er det denne variabel der bestemmer hvilket title tag og metatags der skal vises. For at gøre det nemmest har jeg valgt at bruge en switch() i dette første eksempel.


<?php
//opsætning af metatags og titel
switch ($side) {
    case 'forside':
        $titel='Velkommen til min side';
        $beskrivelse='Min side er sej, her finder du en masse spændende ting osv osv';
        $keywords='Dette,Er,Keywords,For,forsiden';
    break;
    case 'side1':
        $titel='Dette er side 1s titel';
        $beskrivelse='Dette er side 1s beskrivelse';
        $keywords='Dette,Er,Keywords,For,side,1';
    break;    
    default:
        $titel='Dette er titlen pÃ¥ de sider som ikke har egen titel';
        $beskrivelse='Standard beskrivelse';
        $keywords='Dette,Er,Standard,Keywords';
    break;
}
?>

Sådan fortsættes for hver side der er i dit system. Dvs. for hver side laver du en:


<?php 
  case 'filnavnet_uden_.php';
     $titel='';
     $beskrivelse='';
     $keywords='';
   break;
?>

Koden indsættes i index.php under den første kodeblok

Når dette er gjort kan du modificere eller indsætte dine metatags imellem i index.php således de bliver til:


<title><?php echo $titel?></title>
<meta name="Description" content="<?php echo $beskrivelse?>" />
<meta name="Keywords" content="<?php echo $keywords?>" />

Voila så er der individuelle title og metatags.

Den smarte version

Ulempen er jo at det ikke er særligt dynamisk, retter du fx indholdet på en af dine includes skal du også rette titel og description og keywords i din index fil. Derfor ser vi på en lidt smartere og lidt sværere version.

Det letteste som jeg ser det, er helt klart at titlen og metatags står i det dokument vi includer. Dette kan vi dog ikke bare gøre, da metatags jo skal stå i . I stedet indsætter vi 3 linjer i alle vores includes som følger:


<!--
Titlen pÃ¥ dokumentet
Beskrivelsen kommer her og er uden linjeskift
Keywords, Separeret, Med, Komma, Her
-->

Efter at havde gjort dette, skal vi ha' lavet noget kode som kan hente dette data ind. Dette indebærer at indlæse filen som vi vil include og hente de pågældende informationer. Dette kan vi bla. gøre ved brug af funktionen file(). Denne funktion læser en side ind i et array hvorefter vi nemt kan tilgå de enkelte linjer. Lad os se på noget kode:


<?php
//opsætning af metatags og titel
$info=file('indhold/'.$_GET['side'].'/'.$side.'.php'); //hent filen
if (trim($info[0])=='<!--' && trim($info[4])=='-->') { //hvis linje 1 og linje 5 indeholder start og slut for kommentar
    $titel=trim($info[1]); //hent linje 2
    $beskrivelse=trim($info[2]); //hent linje 3
    $keywords=trim($info[3]); //hent linje 4
} else {
    $titel='Din standard titel';
    $beskrivelse='Din standard beskrivelse';
    $keywords='Dine,standard,keywords';
}
?>

Bemærk at vi bruger trim() til at fjerne linjeskift og unødige mellemrum før og efter info.

Igen indsættes metatags med den samme kode:


<title><?php echo $titel?></title>
<meta name="Description" content="<?php echo $beskrivelse?>" />
<meta name="Keywords" content="<?php echo $keywords?>" />

Og endnu engang voila, denne gang bare med metatags der bliver hentet ud fra de enkelte sider.

Eksempler og download

Som altid skal I ikke snydes for den nemme løsning:

Relaterede blogindlæg

Del
Indlægget blev skrevet af Martin d. 05/03, 2008 kl 12:11 og blev sidst rettet d. 05/03, 2008 kl 12:11

Kommentarer

RSS Feed for dette indlæg

GravImg
Skrevet af Michael Østergaard
30/04 - 2008 kl. 09:18

Sejt, det har jeg faktisk været interesseret i, i noget tid :)

GravImg
Skrevet af Martin
30/04 - 2008 kl. 06:48

Ja men så er det jo godt jeg lige kedede mig lidt :)

GravImg
Skrevet af Anders Saugstrup
30/04 - 2008 kl. 06:48

Hej Martin

Jeg faldt lige over din blog via anyhed.dk og kan se, at den straks skal i rss-læseren. Glæder mig til at følge med og lære en masse php!

Hilsen Anders

GravImg
Skrevet af Martin
30/04 - 2008 kl. 06:48

Altid rart med flere faste besøgende, og glad for at det kan bruges

/Martin

GravImg
Skrevet af Rasmus Sørensen
30/04 - 2008 kl. 06:48

Bravo! God turorial og fedt med nogle danske instruktionsartikler med php.
Jeg faldt også over din blog via Anyhed og den er nu tilføjet rss readeren :)

GravImg
Skrevet af Martin
30/04 - 2008 kl. 06:48

Hehe med alle de tilmeldinger er jeg jo næsten nødt til at være lidt aktiv, det er jeg ikke sikker på jeg kan lide :)

GravImg
Skrevet af Vicki Jørgensen
08/03 - 2008 kl. 11:34

Jeg fandt din side på blogbot, og det ser rigtigt spændende ud. Jeg er i gang med at kigge på PHP og jeg tror helt klart jeg kan få noget ud af dine guides. Er det ok hvis jeg skriver hvis jeg har brug for hjælp til noget?
Mvh
Vicki

GravImg
Skrevet af Martin
30/04 - 2008 kl. 06:48

Det er helt i orden, du kan bare skrive eller tilføje mig på MSN

GravImg
Skrevet af Danny
19/07 - 2008 kl. 18:59

Kan man ikke bare include en forside.php der ser sådan her ud?:

head
title Forsiden /title
meta name = \"Description\" content = \"dette er en forside\"
meta name = \"Keywords\" content = \"ord, ord, ord\"
/head
body
Velkommen til MIN forside
/body

Title virker fint ... (Jeg har med vilje udeladt tegn).

GravImg
Skrevet af Martin
19/07 - 2008 kl. 19:38

Hej Danny, jo det kan du som sådan sagtens, men hele pointen med disse include artikler er at undgå at ha head title og body tags i include dokumenter, således at man reelt set kun har indhold i dem. På den måde er det 10 gange lettere at skifte design da det kun skal ændres i en fil (index.php)


Ny kommentar








Sikkerheds kode





DanskeWeblogs.dk | Samling af de danske blogs