• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Meta Tags individuell in *.php einbinden

  • Ersteller Ersteller Deleted member 26020
  • Erstellt am Erstellt am
D

Deleted member 26020

Guest
Hallo,

ich hab eine Website mit der index.php in die per php include der content geladen wird. Der obere Teil der Seite ist immer gleich, aber ich möchte meta-tags, v.a. description individuell für jede "unterseite" einbinden. Wenn ich jetzt in jede unterseite z.B. "seite1" den meta-tag eingebe, ist er im fertigen document nicht oben sondern oben dort wo die unterseite mit php "included" werden.

Gibt eine Möglichkeit, die Meta-Tags im Hauptdokument "index.php" als variable zu definieren und anhand der unterseite (z.B. seite1) eingefügt wird?
Würd mich über einen Tipp freuen :)
 
Du hast doch irgendeine Variable, anhand du die Seiteninhalte inkludierst. Anhand dieser Variablen könnte man doch auch mit einer kleinen Funktion Meta-Tags anpassen.
 
naja, variablen hab ich keine... Hab dir mal mein PHP Script angehängt..
PHP:
<?php 
    if (isset($_GET['go']))     {         switch($_GET['go'])         { 
            case '01':    include('./01.html');                             break; 
            case '02':  include('./02.html');                             break; 
            case '04':    include('./04.html');                             break; 
            case '05':  include('./05.php');                             break;
            case '06':  include('./06.php');                             break;										case '07':  include('./07.html');                             break;

            default:        include('./01.html');         }     }     else     {         include('./01.html');     } 
?>
 
Deine Variable zur Inkludierung der Seiteninhalte ist doch $_GET['go']. Anhand dessen kannst du doch eine Funktion schreiben, um die Meta-Tags anzupassen.
Mal primitiv als Beispiel, was ich meine, hier anhand der Meta-Description. Was du nun da rein machst und ob es überhaupt Sinn macht sei mal dahingestellt.
PHP:
$go = ganzvielabsicherungbevoricheingabenvomusernutze($_GET['go']);
function dynamic_meta($go){
if ($go == 'coole_website'):
    $meta_description = 'megacool!';
elseif ($go == 'doofe website'):
    $meta_description = 'nich so der burner';
endif;

if (isset($meta_description)):
    return '<meta name="description" content="' . $meta_description . '">';
endif;
}
 
Ah okay, ich verstehe.. Ich dachte du hast was anderes gemeint... :oops:
was ist dann mein Platzhalter im Meta-Bereich der Seite?

Sorry, das ich so doof frag, aber ich fang mit php erst an, daher bin ich noch nicht so fit.. :)
Ich greif daher gerne auf das Forum zurück und erstell mir dann eigene "Sammlungen von Codes, usw." :D
 
Wenn du eine Funktion wie oben primitiv beschrieben zusammenbastelst, muss im Header einfach nur noch die Funktion ausgegeben werden, also
PHP:
echo dynamic_meta($go);
Kannst natürlich schauen, entweder alles in eine Funktion, oder jeweils eine gesonderte. Das musst du anhand deines Projekts und deines Bedürfnisses nach Übersichtlichkeit entscheiden.
Probiers einfach mal aus, wenn was nicht klappt versuchen eine Lösung zu finden, ansonsten nochmal fragen.
 
Hallo, also so ganz schlau werd ich grad nicht daraus.. ;)
Deine Vorlage hab ich angepasst, eingefügt und getestet, aber ohne Erfolg.. :(
Im Head Bereich der Seite sieht es bei mir Grad so aus:
(nur ein kleiner Auszug)
PHP:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<?php
echo dynamic_meta($go);
?>

(und etwas weiter unten kommt der php Abschnitt
PHP:
<?php
$go = ($_GET['go']);
function dynamic_meta($go){
if ($go == 'seite1'):    
$meta_description = 'beschreibung1';
elseif ($go == 'seite2'):    
$meta_description = 'beschreibung2';
elseif ($go == 'seite3'):    
$meta_description = 'beschreibung3';
elseif ($go == 'seite4'):    
$meta_description = 'beschreibung4';
elseif ($go == 'seite5'):    
$meta_description = 'beschreibung5';
elseif ($go == 'seite6'):    
$meta_description = 'beschreibung6';
elseif ($go == 'seite7'):    
$meta_description = 'beschreibung7';
endif;

if (isset($meta_description)):   
return '<meta name="description" content="' . $meta_description . '">';
endif;}  
?>

Wenn ich das dokument zum testen hochlade und mir den Quelltext ansehe, seh ich die "Description Zeile" im Head Bereich nicht.. Hab ich etwas übersehen oder vergessen?
 
ich tippe auf :
PHP:
<?php
$go = ganzvielabsicherungbevoricheingabenvomusernutze($_GET['go']);
echo dynamic_meta($go);
?>

denke das die $go in deinem headbereich noch leer ist sehe aber nicht den ganzen code deswegen tippe ich mal drauf los.
mfg
 
[...]und etwas weiter unten kommt der php Abschnitt[...]
Die Funktion muss schon vor der Anwendung geladen werden und nicht danach. Du machst ja auch nicht nach dem Zähneputzen Zahnpasta auf die Bürste. Idealerweise lagert man Funktionen aus und inkludiert sie.
 
okay, ja stimmt..das hab ich mal in einem tutorial gelesen glaub ich.. :D

Ich schaffs aber nicht da mit der meta-tag eingefügt wird. Hier mein komplettes gerüst, noch ohne inhalt..
(Ich möcht erstmal das Gerüst fertig haben, bevor ich den inhalt rein quetsch ;) )
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Titel der Seite</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta name="Keywords" content="bla..bla..bla">
<?php$go = ($_GET['go']);
function dynamic_meta($go){
if ($go == 'seite1'):
$meta_description = 'beschreibung1';
elseif ($go == 'seite2'):    
$meta_description = 'beschreibung2';
elseif ($go == 'seite3'):    
$meta_description = 'beschreibung3';
elseif ($go == 'seite4'):    
$meta_description = 'beschreibung4';
elseif ($go == 'seite5'):    
$meta_description = 'beschreibung5';
elseif ($go == 'seite6'):    
$meta_description = 'beschreibung6';
elseif ($go == 'seite7'):    
$meta_description = 'beschreibung7';
endif;

if (isset($meta_description)):   
return '<meta name="description" content="' . $meta_description . '">';
endif;
}  
?>

<?php$go = ($_GET['go']);echo dynamic_meta($go);?>

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

<div style="position:fixed; bottom:0px; left:0px; width:100%; z-index:100;background-color:#009f15">
<!-- hier mein navigationsmenü -->
</div>
<div align="center">
<?php
if (isset($_GET['go']))     
{         
switch($_GET['go'])         
{ 
case 'index2':    include('./index2.html');
break; 
case 'snowkiten':  include('./snowkiten.html');  
break; 
case 'snowkiten_kurse':  include('./snowkiten_kurse.html');
break;
case 'kitesurfen':    include('./kitesurfen.html');                             
break; 
case 'kitesurfen_kurse':  include('./kitesurfen_kurse.html');
break;
case 'shop':  include('./shop.html');
break; 
case 'powerkiten':  include('./powerkiten.html');
break; 
case 'powerkiten_kurse':  include('./powerkiten_kurse.html');
break;
case 'standuppaddel':  include('./standuppaddel.html');
break;
case 'standuppaddel_kurse':  include('./standuppaddel_kurse.html');
break;
case 'anfrage':  include('./anfrage.php');                             
break;
case 'eventkalender':  include('./eventkalender.html');                             
break;
case 'vertrieb':  include('./vertrieb.html');                             
break;
case 'gallerie':  include('./gallerie.html');                             
break;
case 'team':  include('./team.html');                             
break;
case 'impressum':  include('./impressum.html');                             
break;
case 'partner':  include('./partner.html');                             
break;
case 'kontakt':  include('./kontakt.html');                             
break;                                        
case 'camps':  include('./camps.html');                             
break;                                        
case 'agb':  include('./agb.html');                             
break;
case 'karte':   include('./karte.html');                             
break;
case 'anfrage_erfolgreich':  include('./anfrage_erfolgreich.html');                             
break;
default:        include('./index2.html');         
}     
}     
else     
{         
include('./index2.html');     
} 
?>
</div>

</body>
</html>

Gibt es irgendwelche voraussetzungen damit das funktioniert? Ich mein, der Server verarbeitet PHP einwandfrei, das include funktioniert ja auch..
 
Zurück
Oben