Kommentatoren weitere Felder verpassen

  • Hallo.

    Vorweg: Ich habe Google und dieses Forum schon auf links gedreht, aber meine bescheidenen Fähigkeiten erlauben es mir nicht, mein Problem selber zu lösen.

    Ich möchte, dass bei Kommentatoren von Beiträge neben ihren Namen noch zwei weitere Felder in deren Profil dargestellt werden. Kommentieren können nur registierte Nutzer und die benötigten Daten, die angezeigt werden sollen, wurden im Registrationsprozess schon bereits erhoben und in der Datenbank (wp_usermeta) abgespeichert. Im Detail handelt es sich um die Werte addr1, gruppen und gruppen_2.

    Ich nutze das flat Theme. Dort habe ich probiert die comments.php zu überreden nach meinem Willen zu agieren. Vergeblich.
    Zum Beispiel habe ich es mit dieser Anleitung probiert: http://code.tutsplus.com/articles/custo…rance--wp-26128

    Könnte mir jemand helfen, die drei Werte im Profil anzeigen zu lassen?

    Hier ist eine Version der Original comments.php.

    Es wäre echt toll, wenn jemand einem Anfänger helfen könnte. Vielen Dank!

    • 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

  • also wenn du weitere Felder anlegst, machst du das z.B. so:

    PHP
    function add_comment_fields($fields) {
        $fields['addr1'] = '<p class="comment-form-addr1"><label for="addr1">Adresse1</label><input id="addr1" name="addr1" type="text" size="30" /></p>';
        return $fields;
    }
    add_filter('comment_form_default_fields','add_comment_fields');

    Die Werte für das oben angelegte Feld kannst du wie folgt speichern lassen:

    PHP
    function add_comment_meta_values($comment_id) {
         if(isset($_POST['addr1'])) {
            $addr1 = wp_filter_nohtml_kses($_POST['addr1']);
            add_comment_meta($comment_id, 'addr1', $addr1, false);
        }
    }
    add_action ('comment_post', 'add_comment_meta_values', 1);


    Zur Anzeige dann nur noch folgendes in die comments.php

    PHP
    <?php echo "Adresse1: ".get_comment_meta( $comment->comment_ID, 'addr1', true ); ?>

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Vielen Dank für die Antwort, maxe. Habe es erst heute gesehen.

    Die beiden erst Code-Blöcke gehören in die functions.php von meinem Theme?

    Entschuldige, die Anfängerfrage. Bin leider Anfänger :-)

Jetzt mitmachen!

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