• Gelöst egroll

    (@egroll)


    Hallo,

    ich nutze bisher WP mit dem theme 2016. Zusätzliche Daten für ein Post hatte ich mit ACF verwaltet, d. h. Eingegeben und die Ausgabe im zugehörigen child theme selbst programmiert.

    Derzeit probiere ich WordPress 6.7.2 mit dem theme 2025 auf einer lokalen Seite aus. Schön, dass inzwischen custom field bei der Eingabe bequem angelegt und gefüllt werden können. AFC wäre damit überflüssig. Aber ich vermisse die Ausgabe im theme 2025. Habe ich etwas übersehen?

    Mit Hilfe eines eigenen Shortcodes habe ich das nun erledigt. Allerdings funktioniert dies nicht, wenn ich Posts in einer Loop anzeigen lasse. Hier werden die eigene Daten des 1. Post bei allen folgenden wiederholt. Ist dafür eine Lösung vorgesehen?

    Danke im Voraus

Ansicht von 5 Antworten – 1 bis 5 (von insgesamt 5)
  • Moderator threadi

    (@threadi)

    Bzgl. dem Shortcode ist das glaube ich ein weiterhin in Gutenberg existierender Bug. Ich glaube den kann man durch passende Implementierung lösen. Wie sieht dein Code dafür aus?

    Der Umgang mit den Post Meta Feldern wird über „Binding“ realisiert. Leider ist das auch für mich noch nicht genügend. Hier findest Du einen Artikel dazu: https://make.wordpress.org/core/2024/10/21/block-bindings-improvements-to-the-editor-experience-in-6-7/

    Bei weiteren Fragen zur Entwicklung von Gutenberg würde ich dir empfehlen ein Issue bei deren Team zu eröffnen: https://github.com/WordPress/gutenberg/issues

    Thread-Starter egroll

    (@egroll)

    Danke für deine schnelle Antwort. Werde mich mit den angegebenen Links befassen. Meinen Shortcode habe ich mit dem Plugin Snippets mit der Eigenschaft „Snippet überall ausführen“ erstellt. SYNTAX: [zusatzfeld feld=“{Zusatzfeldname}“ format=“{Formatangabe}“]. BEISPIEL: [zusatzfeld feld=“Anfangsdatum“ format=“Beginn: %s“].

    function zusatzfeld_funktion($atts){
    global $post;
    $atts = shortcode_atts(array('feld' => NULL, 'format' => '%s'), $atts);
    if( isset($atts['feld'] )) {
    $post_id = (NULL === $post_id) ? $post->ID : $post_id;
    $daten = get_post_meta($post_id, $atts['feld'], true);
    if( isset($daten) and $daten != '' ) {
    return sprintf($atts['format'], esc_attr($daten));
    } else {
    return ''; # kein Feldwert
    }
    } else {
    return ''; # keine Feldname
    }
    }

    add_shortcode('zusatzfeld', 'zusatzfeld_funktion');

    • Diese Antwort wurde vor 1 Jahr von La Geek geändert. Grund: Code-Formatierung
    Thread-Starter egroll

    (@egroll)

    Hallo,

    Nachdem ich der Empfehlung von threadi gefolgt bin und Meta Field Block von Phi Phan ausprobiert habe, kann ich die eigenen Datenfelder der Posts auch in der Wiederholung (loop) korrekt auslesen und anzeigen. Ebenso lassen sich umschließende Texte realisieren oder leere Werte ganz ausblenden. Das genannte Plugin erfüllt also voll und ganz meine Wünsche und erhält 5 Sterne.

    Nochmals Danke!

    Moderator threadi

    (@threadi)

    Schön, dass du eine Lösung finden konntest. Nur noch 2 Anmerkungen:

    • Wenn Du hier im Forum Quellcode postest, verwende bitte den Code Block. Das Vorgehen ist hier beschrieben: https://wordpress.org/support/forum-user-guide/block-editor/#code-block – damit ist Quellcode hier auch besser lesbar.
    • Laut deinem Quellcode lädst Du das globale $post Object ein und verwendest das um die Daten auszulesen. Innerhalb einer Loop solltest Du jedoch eher mit get_the_ID() arbeiten um die ID des Objects zu ermitteln.

    Aber gut, wenn es mit einem anderen Plugin ebenso machbar ist. Und danke fürs gelöst markieren 🙂

    Moderator La Geek

    (@la-geek)

    Ergänzend:
    In unserer Foren-FAQ ist eine ausführliche(re) Erklärung über das Einfügen von Code im Forum auf Deutsch sowohl für den klassischen Editor-Modus als auch für den Block-Editor-Modus
    https://de.wordpress.org/support/topic/wie-du-code-im-forum-einfuegen-kannst/

Ansicht von 5 Antworten – 1 bis 5 (von insgesamt 5)

Das Thema „custom fields in TT5 ausgeben“ ist für neue Antworten geschlossen.