Support » Plugins » ACF Feldtypen bearbeiten

  • Hallo zusammen,

    die Coder die unser Theme erstellt haben haben einige Funktionen mit ACF erstellt, so zum Beispiel die Anzeige einiger Logos im Footer. Dazu sind bspw. 3 Feldtypen „Bild“ hinterlegt, so weit so gut.

    Wie kann ich diesen nun einen Link hinzufügen, also das das Bild angezeigt wird aber gleichzeitig dieses verlinkt ist.

    Hat jemand eine Idee?

    Wir benutzen aktuell die kostenfreie Version von ACF, mus sich ggfs dafür die Pro Version nehmen?

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)
  • Hallo,
    ohne Zugriff auf das Theme werden wir das wohl kaum sagen können.
    Am besten wendest du dich an die Entwickler des Themes.

    Viele Grüße
    Hans-Gerd

    Thread-Starter atom13

    (@atom13)

    Hallo Hans-Gerd,

    Danke für deine schnelle Rückmeldung. ich dachte zunächst wäre es wichtig zu wissen ob ACF das überhaupt „kann“, also können bestimmt aber wie das hinterlegt werden muss. Das ist ja dann unabhängig vom Theme, da der Code für die einzelnen Felder von ACF dann extra ins Theme geschrieben werden muss

    Hallo,
    vielleicht ist die folgende Doku hilfreich.

    Viele Grüße
    Hans-Gerd

    Moderator Bego Mario Garde

    (@pixolin)

    Du kannst mit ACF weitere Felder für Text, Bilder, URLs, … anlegen. Dafür brauchst du nicht die kostenpflichtige Version.

    Im Template wird der Eintrag des Custom Field mit sowas wie

    <?php echo get_field('feldname'); ?>

    ausgegeben. Dabei sollte die Ausgabe aber um möglichen Schadcode bereinigt werden, damit z.B. nicht statt eines Logos eine JavaScript-Funktion eingebunden wird. Für ein Logo könnte das so aussehen:

    <?php echo esc_html( get_field('logo_one') ); ?>

    Möchtest du nun dieses Logo verlinken, benötigst du ein weiteres Custom Field für die Erfassung der URL und musst außerdem den Code im Template anpassen. Aus dem Code-Beispiel wird dann sowas wie

    <?php 
    $logo_one = get_field('logo_one');
    $size = 'thumbnail';
    $out = '<a href="' . esc_attr( get_field('logo_one_url') ) . '">';
    $out .= '<img src="' . wp_get_attachment_image( $logo_one, $size ) . '" alt="Logo"></a>';
    
    echo $out; 
    ?>

    Hier werden die ACF-Felder logo_one und logo_one_url abgerufen und dann zu einer Zeile HTML aneinandergehängt ($out), in der das Logo mit der angegebenen URL verlinkt wird. Die Zeile wird am Ende mit echo $out; ausgegeben.

    Der vollständige Code sollte noch ein if-Statement enthalten, was passieren soll, wenn die Felder durch den Anwender nicht ausgefüllt wurden. Ich wollte es jetzt aber auch nicht zu kompliziert machen.

    Aus heutiger Sicht ist das ohnehin alles recht mühsam. Moderne, blockbasierte Themes ermöglichen das Einfügen verlinkter Logos in den Seitentemplates ohne jeglichen Programmieraufwand.

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)