Explode-Ausgabe

  • Hallo zusammen!

    Ich setze bei mir ACF ein, und habe mir da ein Auwahlfeld mit Adress-Angaben gebastelt, in welchem die einzelnen Abschnitte mit - getrennt werden.

    Mit folgendem Code wollte ich die Angaben ausgeben lassen:

    PHP
    function Organisation() {    
    global $id, $post_meta_cache;        
    $adresse = get_post_meta( get_the_ID(), 'Firma', true ) ;     
    $adresse = explode('-', $adresse);        
    echo "\n".'<meta name="name" content="'. $firma[0] . '" />';    
    echo "\n".'<meta name="streetAdress" content="'. $firma[1] . '" />';    
    echo "\n".'<meta name="postalCode" content="'. $firma[2] . '" />';    
    echo "\n".'<meta name="adressLocality" content="'. $firma[3] . '" />';   
    echo "\n".'<meta name="telephone" content="'. $firma[4] . '" />';    
    echo "\n".'<meta name="url" content="'. $firma[5] . '" />';    echo "\n";}

    Ich habe mich dabei an einem vorhandenen Beispiel auf dem Blog orientiert.

    Leider wird nur

    Zitat

    <meta name="" content="" />

    ausgegeben.

    Ich habe das jetzt mehrfach überprüft, aber ich finde den Fehler nicht.

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Danke für den Hinweis.

    Aber das erwähnte Beispiel, was funktioniert, sieht wie folgt aus:

    PHP
    function Placename() {
        global $id, $post_meta_cache;
         $koordinate = get_post_meta( get_the_ID(), 'Ort', true ) ;
        $koordinate = explode('/', $koordinate);
        echo '<meta name="geo.placename" content="'. $koordinate[0] . '" />';
        echo "\n".'<meta name="geo.position" content ="'. $koordinate[1] . '" />';
        echo "\n".'<meta name="IBCM" content="'. $koordinate[2] . '" />';
        echo "\n";}


    Und die beiden Beispiele sind ja eigentlich gleich.

  • Wie beschrieben verwendet man bei ACF nicht get_post_meta(), die Code-Beispiele sind nicht für ACF. Sie sind auch nicht gleich, sie verwenden unterschiedliche Meta Felder und unterschiedliche Trennzeichen.

    Wenn zudem der Code [FONT=courier new]echo "\n".'<meta name="[COLOR=#ff0000]name[/COLOR]" content="'. $firma[0] . '" />';[/FONT] die Ausgabe [FONT=courier new]<meta name="" content="" />[/FONT] erzeugt, ist generell was falsch, weil [COLOR=#ff0000][FONT=courier new]name[/FONT][/COLOR] fehlt.

    Zudem wird die Variable [FONT=courier new]$adresse[/FONT] zerteilt, dann aber für die Teile auf die Variable [FONT=courier new]$firma[..][/FONT] zugegriffen, die gibt es an dieser Stelle gar nicht.

    Einmal editiert, zuletzt von b3317133 (1. Januar 2018 um 16:36)

  • So, nachdem ich mich jetzt noch ein bisschen versucht habe, habe ich es tatsächlich so hingebracht, wie ich es haben wollte.

    Ich habe mir mal mit print_r die Daten ausgeben lassen.

    Und so schaut das jetzt aus

  • Aus irgendeinem Grund scheint es aber nur bei neuen Artikeln zu funktionieren.

    Bei alten Posts speichert er den gewählten Datensatz nicht, sondern springt auf den ersten eingegebenen Datensatz zurück

  • Für Werte in Feldern, die mit dem Plugin ACF erstellt wurden, verwendet man für die Ausgabe die extra dafür vorhandene [FONT=courier new]get_field()[/FONT] Funktion (Beispiele siehe o.g. Links), und nicht die [FONT=courier new]get_post_meta()[/FONT] Funktion.

  • Das hab ich schon kapiert. Nur die Verwendung von get_field in meinem Fall schnalle ich nicht.

    Ich habe eine Felder-Gruppe als Auswahlmenü erstellt. Die einzelnen Daten stehen als Adress-Satz zur Verfügung, wo die einzelnen Angaben mittels Unterstrich voneinander getrennt werden.

    Wie ich das ausgeben kann, kapiere ich nicht

    PS: Nach ein bisschen mehr googlen hab ichs dann doch noch rausgefunden

    PHP
    function Firmendetails() {
            $company = get_field('Firma');
    $company = explode('_', $company);
    echo "<br />". $company[0];
    echo "<br />". $company[1];
    echo "<br />". $company[2];
    echo "<br />". $company[3];
    echo "<br />". $company[4];
    echo "<br />". $company[5];
    }
  • Ich habe die obige Funktion um eine Abfrage erweitert, falls die Option 'keine' ausgewählt ist

    Die alten Beiträge habe ich ja noch nicht zugeordnet, trotzdem erscheint zumindest der Text 'Kontaktdaten'.

    Wenn ich in alten Beiträgen die Option 'keine' angebe, und den Beitrag aktualisiere, wird das nicht gespeichert. Es wird auf den ersten Eintrag gewechselt, der in dem Datensatz vorhanden ist, aber nichts ausgegeben - außer dem Text 'Kontaktdaten.

    Das Cache leeren in WP Rocket hat keine Wirkung

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!