• Moin!

    In meinem Blog habe ich mit einem Custom Field eine Dachzeile für meine Überschriften gebaut. In meinem alten, selbstgebauten Theme habe ich das einfach hart eincodiert. In bspw. Twenty-Twentythree geht das ja so nicht.

    Gibt es einen Block, mit dem ich den Inhalt eines Custom-Fields anzeigen lassen kann? Oder wie würde ich das am schlausten machen?

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 5 Antworten – 1 bis 5 (von insgesamt 5)
  • Hallo,
    einen Ansatz findest du vielleicht in dem folgenden Thread.

    Viele Grüße
    Hans-Gerd

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Hallo Steffen,

    spannende Frage, denn bisher scheint es keinen Theme-Block zu geben, mit dem sich ein Custom Field einfach* ausgeben lassen würde:

    Liste der Theme-Blöcke
    (zum Vergrößern anklicken)

    Angeblich soll es irgendwelche Premium-Plugins geben, die dafür einen eigenen Block zur Verfügung stellen, aber Geld ausgeben wollte ich jetzt dafür nicht. Also, was tun?

    Da Plugins wie Advanced Custom Fields eigene Shortcodes liefern, um Custom Fields auszugeben, erscheint es mir naheliegend, einen eigenen Shortcode zu schreiben. Den kannst du und z.B. mit dem Plugin Code Snippets oder gleich in der functions.php eines Child-Themes einbinden:

    add_shortcode( 'metablock', 'metablock_shortcode' );
    function metablock_shortcode() {
      $out = '';
    
      // Hole den Wert des Custom Field "helloworld" – bitte CF-Name anpassen
      $meta = get_post_meta( get_the_ID(), 'helloworld', true );
    
      // Wenn das Feld einen Eintrag hat, speichere die Ausgabe in einer Variablen.
      if( $meta ) {
        $out = '<p>Custom Field: ' . esc_attr( $meta ) . '</p>';
      }
    
      // Ausgabe des Shortcodes
      return $out;
    }

    Nun kann ich im Theme-Editor z.B. im Templates „Singular“ einen Shortcode-Block und dprt den Shortcode [metablock] einfügen. Damit der im Theme Twenty Twenty-Three nicht an der Bildschirmseite klebt, sondern bündig mit dem übrigen Text abschließt, packe ich ihn noch in einen Gruppenblock, den ich nicht weiter formatieren muss:

    Shortcode Block im Gruppen-Block
    (zum Vergrößern anklicken)

    Wenn du sowieso schon ACF nutzt, kannst du natürlich einfach den Shortcode des Plugins nutzen und brauchst nicht selbst einen zu erstellen.

    * Für die Nerds unter uns:
    Das Beispiel hier ist etwas vereinfacht. Das letzte Attribut in get_post_meta() sorgt dafür, dass nur ein Wert zurückgegeben wird. Sollen mehrere Werte ausgegeben werden, müsste der Code entsprechend erweitert werden.

    Thread-Starter Steffen Voß

    (@kaffeeringe)

    Danke für die ausführliche Antwort. Ich versuch mal, damit zu basteln.

    Ich hab darüber hinaus das Plugin „Shortcoder“ gefunden. Das ermöglicht den Zugriff u.a. auf die Custom Fields.

    Ich bekomm die noch nicht im Theme ausgegeben, aber ich schau mal.

    Thread-Starter Steffen Voß

    (@kaffeeringe)

    Danke für die Tipps. Ich finde es ein wenig Overkill, mit ACF zu installieren. Aber wenn es nicht anders geht… 😉

    Parallel reiche ich mal einen Feature Request bei Gutenberg ein. 😀

    Thread-Starter Steffen Voß

    (@kaffeeringe)

    @pixolin: Der Block funktioniert so – aber nicht auf der Startseite. Im Loop wird der erste Subtitle bei allen Posts angezeigt.

Ansicht von 5 Antworten – 1 bis 5 (von insgesamt 5)
  • Das Thema „Custom Fields in Gutenberg-Theme anzeigen“ ist für neue Antworten geschlossen.