Ausgabe in ACF steuern

  • Hallo zusammen!

    Ich habe mir in ACF eine Funktion gebaut für die Ausgabe von Kontaktdaten, die ich aus einem Auswahlfeld hole.

    Die sieht nun so aus:

    Das Problem dabei ist, das, wenn company[1] (oder eine der anderen Variablen) nur ein Füllzeichen ist (also das -), alle nachfolgenden Felder um eins nach unten rutschen. Sprich $company[3] wäre dann company[2]

    Weiß jemand wie ich das verhindern kann?

    • 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

  • Ich wüsste nicht, wie das möglich sein sollte. Ein Explode "weiß" ja nicht, wie viele Werte du in deinem Array erwartest.

    Warum machst du es überhaupt so? Wäre es nicht naheliegender, die Kontaktdaten als einzelne Felder zu erstellen? Weshalb der Umweg über das einzelne Feld und den Explode?

    Alternativ könntest du mit for each durch dein Array loopen. Dann wäre die Länge des Arrays egal. Dann bräuchtest du aber mindestens ein soearates Feld für die URL. Oder du versuchst du URL zur "erkennen". Dann wird es aber noch mehr um die Ecke gedacht ;)

    Oder: Leg die Kontaktdaten einfach als WYSIWYG Feld an und formatier' es gleich im Backend. Dann musst du das Feld einfach nur noch ausgeben.

  • Warum machst du es überhaupt so? Wäre es nicht naheliegender, die Kontaktdaten als einzelne Felder zu erstellen? Weshalb der Umweg über das einzelne Feld und den Explode?

    Ganz einfach aus Bequemlichkeit - ehrlich gesagt.

    Aber ich denke, mit einzelnen Kontaktfeldern ist es wohl am einfachsten, da kann dann (glaube ich) auch mal ein Feld leer bleiben, ohne das sich die ganze Ansicht verschiebt.

  • Ganz einfach aus Bequemlichkeit - ehrlich gesagt.

    Aber ich denke, mit einzelnen Kontaktfeldern ist es wohl am einfachsten, da kann dann (glaube ich) auch mal ein Feld leer bleiben, ohne das sich die ganze Ansicht verschiebt.

    Ich glaube sogar, die einfachste/sauberste Variante wäre das WYSIWYG Feld.

    Da bist du komplett flexibel und hast das Markup gleich direkt im Feld.

  • .. da kann dann (glaube ich) auch mal ein Feld leer bleiben, ohne das sich die ganze Ansicht verschiebt.


    Mit entspr. korrekten Daten in einem Auswahlfeld verschiebt sich auch nichts. Poste doch mal die Daten, bei denen das bei Dir passiert und die, bei denen das nicht passiert.

  • Weiß jemand, wie man vorhandene Datensätze von ACF löschen kann? Ich habe die Felder-Gruppe jetzt schon mehrfach gelöscht, aber er zieht sich die Daten immer wieder für die einzelnen Bezeichnungen. Und den Ort will er jetzt gar nicht mehr speichern im Post.

  • Poste doch mal Daten, bei denen das passiert und welche, bei denen das nicht passiert.

    Und sauber(er) formatierten Quellcode, wenn es möglich ist.

    Beispiel an diesem Code:

    Dann ergibt

    Zitat

    Stadt_Bauamt_Frau J. L._Straße_12345_Ort_0 00 00 / 000 00_domain.de_00.00000;00.00000_00.00000, 00.00000

    folgende Ausgabe:


    Aber bei diesem Datensatz:

    Zitat

    Feuerwehr Ort_straße_12345_Ort_-_-00.00000;00.00000_00.00000, 00.00000

    ergibt

    Zitat

    [FONT=Verdana]Feuerwehr Ort
    [/FONT][FONT=Verdana]straße[/FONT]
    [FONT=Verdana]12345 Ort[/FONT]
    [FONT=Verdana]-[/FONT]
    [FONT=Verdana]-53.35117;00.00000[/FONT]
    [FONT=Verdana]00.00000, 00.00000[/FONT]

  • Die Datensätze haben nicht das gleiche Format.

    Im ersten Datensatz ist z.B. die Strasse im 4. Feld, im zweiten Datensatz ist die Strasse im 2. Feld, es fehlen also offenbar "leere" Felder davor, hier beispielhaft in rot eingefügt.

    Zitat

    Feuerwehr Ort_[COLOR=#ff0000]-_-_[/COLOR]straße_12345_Ort_-_-00.00000;00.00000_00.00000, 00.00000

  • Da im ersten Datensatz z. B. die Abteilung und die Ansprechpartnerin enthalten sind, die im 2. nicht vorhanden sind, rutschen im zweiten Datensatz die Felder vor. Und wie ich das verhindern kann, ohne da schreiben zu müssen 'keine Angabe' oder ähnliches, das weiß ich halt nicht

  • Wenn Du explode() benutzt, müssen alle Datensätze die gleiche Anzahl Felder haben.

    Wie Du ein "leeres" mit "-" befülltes Feld unterscheiden kannst, steht doch schon in Deinen Postings.

    PHP
    if ($company[1] != '-') {
        // anzeigen
    } else {
        // nicht anzeigen
    }
  • Anscheinend habe ich die Lösung zum verhindern für die Ausgabe leerer Felder gefunden. Einfach ein

    PHP
    echo '';

    So sieht der Code jetzt aus:

Jetzt mitmachen!

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