1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Ausgabe in ACF steuern

Dieses Thema im Forum "Konfiguration" wurde erstellt von Marcuss, 8. Januar 2018.

  1. Marcuss

    Marcuss Well-Known Member

    Registriert seit:
    10. Juni 2010
    Beiträge:
    435
    Zustimmungen:
    0
    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:
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    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?
     
  2. danielgoehr

    danielgoehr Well-Known Member

    Registriert seit:
    13. Juli 2016
    Beiträge:
    2.674
    Zustimmungen:
    128
    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.
     
  3. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.634
    Zustimmungen:
    1.778
    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.
     
  4. Marcuss

    Marcuss Well-Known Member

    Registriert seit:
    10. Juni 2010
    Beiträge:
    435
    Zustimmungen:
    0
    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.
     
  5. danielgoehr

    danielgoehr Well-Known Member

    Registriert seit:
    13. Juli 2016
    Beiträge:
    2.674
    Zustimmungen:
    128
    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.
     
  6. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.634
    Zustimmungen:
    1.778
    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.
     
  7. Marcuss

    Marcuss Well-Known Member

    Registriert seit:
    10. Juni 2010
    Beiträge:
    435
    Zustimmungen:
    0
    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.
     
  8. Marcuss

    Marcuss Well-Known Member

    Registriert seit:
    10. Juni 2010
    Beiträge:
    435
    Zustimmungen:
    0
    Beispiel an diesem Code:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Dann ergibt
    folgende Ausgabe:

    Aber bei diesem Datensatz:
    ergibt

     
    #8 Marcuss, 10. Januar 2018
    Zuletzt bearbeitet: 10. Januar 2018
  9. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.634
    Zustimmungen:
    1.778
    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.

     
  10. Marcuss

    Marcuss Well-Known Member

    Registriert seit:
    10. Juni 2010
    Beiträge:
    435
    Zustimmungen:
    0
    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
     
  11. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.634
    Zustimmungen:
    1.778
    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:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  12. Marcuss

    Marcuss Well-Known Member

    Registriert seit:
    10. Juni 2010
    Beiträge:
    435
    Zustimmungen:
    0
    Anscheinend habe ich die Lösung zum verhindern für die Ausgabe leerer Felder gefunden. Einfach ein
    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    So sieht der Code jetzt aus:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  13. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    11.634
    Zustimmungen:
    1.778
    Wahlweise das hier einfach weglassen:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden