META Description automatisch zuweisen

  • jetzt muss ich aus der oben gennaten titel.php die Angaben auslesen und in der index.php bei
    <meta name="description" content="<?PHP echo $META[$_GET['site']]['desc'][$lang]; ?>">
    diese Stringfolge so umbauen, dass die Meta Beschreibung bei allen Seiten richtig eingesetz wird

  • Vielleicht steh ich aufm Schlauch, aber was genau ist da jetzt groß nötig?


    PHP
    if (isset($TITLE[$_GET['site']])) {
      //existiert
    } else {
      //existiert nicht
    }


    Musst halt deine Ausgabe entsprechend reinpacken.

  • Vergess titel, bei titel ist alles geklärt und funktioniert, es geht um
    dies
    <meta name="description" content="<?PHP echo $META[$_GET['site']]['desc'][$lang]; ?>">
    in diesen string sollen die Angaben welche in der titel.php vorliegen so eingesetzt werden, dass jede seite den spezifischen
    <meta name="description" content="HIER SOLL DER SPEZIFISCEH TEXT STEHEN">
    erhält

  • nein eben nicht,
    liegt META[0] vor, dies soll die Angabe für die index.php gelten, hier sehe ich im Queltext dies
    <meta name="description" content="">
    in der Titel.php habe ich aber diese Angaben gemacht
    $META[0]['desc']['uk'] = "Holiday-locations.....


    bei META[34] sehe ich dies
    <meta name="description" content="Holiday-locations offers you a great selection of holiday homes, country houses, villas and mansions for your unforgettable vacations and holidays in Spain. ">
    genau diesen Text den ich in der Titel.php unter
    $META[34]['desc']['uk'] = "Holiday....
    angegeben habe
    warum funktioniert dies nicht bei META[0], wie anders kann ich die index ansprechen?


  • Tut mir ja leid, aber du hast die Abfrage nicht verstanden..


    if (isset($META[$_GET['site'])) {


    }


    prüft normalerweise ob $_GET['site'] vorhanden ist, wenn ja dann wird halt das aus der $_GET['site'] genommen. Ansonsten (der else teil) wird das genommen was du vorgibst. Also $META[0] und nicht $META[$_GET['site']].

  • $_GET['site']
    und es liegt META[34], oder META[341], oder META[34121008] vor in der title.php, besteht kein Problem, aber es geht eben nicht, wenn META[0] vorliegt, dies ist die Definition für die index seite
    META[0] ist mit text hinterlegt in der index.php genauso wie META[34] etc.
    welche Varibale / Nummer soll ich den METAtext für die index Seite einsetzen?

  • Wo genau ist der Unterschied für dich zwischen Meta[0,3,20,312456789947234365]?


    Wenn es keine site Angabe gibt, bzw. diese falsch ist, dann wird halt der ELSE teil ausgeführt. Was in deiner titel.php steht ist dabei sowas von egal.


    Genauso was deine index.php sonst für Funktionen haben soll.. Du musst nur deine Abfrage anpassen.


    <meta ..... <?php echo $META[$_GET['site']]; ?>> wird zu:


    PHP
    <?php
    if (isset($META[$_GET['site']])) {
      echo "<meta ..... <?php echo $META[$_GET['site']]; ?>>";
    } else {
      echo "<meta ..... <?php echo $META[0]; ?>>";
    }  
    ?>
  • ich verzweifle so langsan, jetzt habe ich dies gemacht
    [code=php]


    // META erstellen
    $METADESC = $META[$_GET['site']]['desc'][$lang];


    // Sonderfall META für Suchvorlage
    if($_GET['site'] == "ssearch"){ $METADESC = $META['ssearch'][$_GET['sv']]['desc'][$lang]; }


    // Sonderfall META für manuelle Seite
    if($_GET['site'] == "mansite"){ $METADESC = $META['mansite'][$_GET['pgn']]['desc'][$lang]; }


    else { $METADESC = $META[0]['desc'][$lang]; }
    [code=php]


    das Resultat ist, dass ich jetzt auf jeder Seite die Angaben von
    META[0] habe
    in der index.php habe ich dies eingesetzt
    <meta name="description" content="<?PHP echo $METADESC; ?>">

  • Zitat von holidayl;8770

    ich verzweifle so langsan, jetzt habe ich dies gemacht


    das Resultat ist, dass ich jetzt auf jeder Seite die Angaben von
    META[0] habe
    in der index.php habe ich dies eingesetzt
    <meta name="description" content="<?PHP echo $METADESC; ?>">


    Dir ist schon bewusst das:


    PHP
    <?php
    if($_GET['site'] == "mansite"){ $METADESC = $META['mansite'][$_GET['pgn']]['desc'][$lang]; }
    
    
    
    
            else { $METADESC = $META[0]['desc'][$lang]; }
    ?>


    Immer $META[0] als ausgabe ergibt wenn $_GET['site'] nicht mansite ist?


  • okay, ich gebe zu ich bin überfordert und muss irgend eine Lösung nun finden, dass der richtige META DESCRIPTION zu geordnet wird, ansonsten lasse ich einfach auf allen Seiten die Beschreibung der Index.php und verzichtet auf SEO, denn das ist der eigentliche Auslöser gewesen, ich wollte jeder Seite die spezifische Beschreibung und keywords zuordnen

  • Wie gesagt, guck dir das Beispiel mit dem Test an.


    Setz für test Werte von 1 bis 10 ein und guck was als Ausgabe raus kommt. Das prinzip ist nämlich das gleiche wie das was du eingebaut hast, deswegen funktioniert es dann auch nicht.


    Ich hab dir mittlerweile mehrmals die Lösung hingeschrieben, die musst du nurnoch umsetzen. Bisher versuchst du aber lieber deine eigene Lösung umzusetzen, welche aus oben genanntem Grund schon nicht funktioniert.

  • ich habe den Rat befolgt, habe die Anweisung auch gefunden und so umgesetzt, jedoch fehler in Zeile 58
    [code=php]
    <?php
    if (isset($META[$_GET['site']]['desc'][$lang])) {
    echo "<meta name='description' content="<?php echo $META[$_GET['site']]['desc'][$lang]; ?>>";
    } else {
    echo "<meta name='description' content="<?php echo $META[0]['desc'][$lang]; ?>>";
    }
    ?>
    [code=php]

  • Ich verstehe ich nicht wieso du die If-Anweisung bei dem Test Beispiel einfach ignorieren willst. Diese stehen vor dem Echo, somit musste da auch gucken was genommen wird.


    Das die Abfrage nicht funktioniert liegt daran dass ich selbst einen Fehler reingebaut hatte, so sollte es richtig sein:

    PHP
    <?php
        if (isset($META[$_GET['site']]['desc'][$lang])) {
          echo "<meta name='description' content='".$META[$_GET['site']]['desc'][$lang]."'>";
        } else {
          echo "<meta name='description' content='".$META[0]['desc'][$lang]."'>";
        }
        ?>