Ausgabe eines ACF-Feldes

  • Hallo zusammen!

    Mit Hilfe von ACF lasse ich bei Fotos den Namen und / oder die Organisation aus einer Auswahl als Copyright ausgeben.

    Nun möchte ich, falls ein vorhandenes Auswahlkästchen (Funktion thumbnail copyright obs) angeklickt wird, den entsprechenden Text ausgeben lassen. Leider funktioniert das nicht wie gewünscht.

    Der Code dafür ist folgender

    Leider haut das mit der Ausgabe des Textes für die Checkbox nicht hin.

    • 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

  • Dieser Code enthält weder eine Abfrage für eine ACF Checkbox noch eine Ausgabe sonstiger ACF-Felder über die ACF API.

    Evtl. hast Du den falschen Code gepostet.

    Wenn man ACF verwendet, sollte man für das Lesen der Daten die ACF-API z.B. get_field/the_field verwenden, damit die ACF-Rückgabeformate und ACF-Filter u.ä. beachtet werden.

    Ich habe schon den korrekten Code gepostet. Der wird so erfolgreich verwendet, wie man z. B. hier im Artikel unterhalb der Social-Media-Button sehen kann.

    Der gesamte Code für die Ausgabe von Name bzw. Organisation sieht (ohne den Versuch meiner Anpassung) so aus und verwendet ebenfalls kein get_field oder ähnliches:

  • Der Code Ist so schon korrekt!

    Der Komplette Code sieht so aus:

    Das der Code funktioniert, sieht man zum Beispiel in diesem Artikel unterhalb der Social-Media-Button.

    Wenn ich meinen Code-Versuch einfüge

    PHP
    /* thumbnail copyright obs */
            $thumbnail_id_obs = get_post_thumbnail_id();
            $thumbnail_meta_obs = array();
            $thumbnail_meta_obs[] = get_post_meta( $thumbnail_id_obs, 'artikelfoto', true ) ?? NULL;
           
            if( count( array_filter ( $thumbnail_meta_obs ) ) >= 0 ){
                $thumbnail_copyright_obs = implode( ', ', $thumbnail_meta_obs );
                $copyright[] = '<div>&copy; ' . $thumbnail_copyright_obs . '</div>';
            }

    und mit print_r $thumbnail_meta_obs ausgeben lasse, ergibt das folgende Ausgabe:

    Zitat

    Array ( [0] => Array ( [0] => obs / Polizei Lüneburg ) )

    Es funktioniert also. Nur nicht so, wie es soll

  • Da unbekannt ist, wo genau Du Deine Code-Ergänzung eingefügt hast, kann man Dir ausser Ratespiel kaum was verraten.


    Sorry mal wieder...

  • [FONT=Courier New]$copyright_obs[/FONT] wird nirgends ausgegeben.


    Doch:

    PHP
    $copyright_obs[] = '<div>&copy; ' . $thumbnail_meta_obs . '</div>';

    Es steht zwar kein echo davor, trotzdem sollte damit die Ausgabe erfolgen.

    Funktioniert hier ja auch:
    [COLOR=#0000BB]

    PHP
    $copyright[] = '<div>&copy; ' . $thumbnail_copyright . '</div>';

    Siehe hier z. B.

    Das entfernen Deiner Änderung hat leider keine Wirkung!
    [/COLOR]

  • Es steht zwar kein echo davor, trotzdem sollte damit die Ausgabe erfolgen.


    Damit erfolgt keine Ausgabe, sondern das Hinzufügen zum Array.

    Diese Zeile weiter unten fügt die Daten des [FONT=Courier New]$copyright[/FONT] Arrays in die Ausgabe ein:

    PHP
    $copyright_list .= implode( '', $copyright );


    Und das fehlt für [FONT=Courier New]$copyright_obs[/FONT].

Jetzt mitmachen!

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