it-swarm.com.de

Verwenden des Filters zum Hinzufügen zusätzlicher Felder zu comment_form ()

Ich möchte den Kommentaren ein Feld hinzufügen und habe diese Codes verwendet.

functions.php

function my_fields($fields) {
    $fields['url2'] = '<p class="comment-form-url2">
                          <label for="url2">URL hittad på webben</label>
                          <input id="url2" name="url2" type="text" value="" size="30" />
                       </p>';
    return $fields;
}
add_filter('comment_form_default_fields','my_fields');

comments.php

comment_form();

Fragen

  1. Es wird kein zusätzliches Feld im Administratorkommentar hinzugefügt. Sollte es oder nicht?
  2. Das zusätzliche Feld wird anscheinend nicht gespeichert. Ich habe versucht, das Kommentar-Array var dump. Warum nicht?
1
Jens Törnell

Das Kommentarformular enthält noch einige weitere Haken, die Sie verwenden können. Wo Sie sich einhängen, wird nur angezeigt, wenn der Benutzer nicht angemeldet ist. Wenn Sie dieses Feld für alle Benutzer (angemeldet oder nicht) möchten, müssen Sie Ihr Formular hinzufügen, indem Sie sich in comment_form_after_fields und comment_form_logged_in_after einhängen, die beide angemeldet sind Aktionen ausführen und das neue Feld wiedergeben.

<?php
add_action( 'comment_form_logged_in_after', 'pmg_comment_tut_fields' );
add_action( 'comment_form_after_fields', 'pmg_comment_tut_fields' );
function pmg_comment_tut_fields()
{
    ?>
    <p class="comment-form-title">
        <label for="pmg_comment_title"><?php _e( 'Title' ); ?></label>
        <input type="text" name="pmg_comment_title" id="pmg_comment_title" />
    </p>
    <?php
}

Schauen Sie sich dieses Tutorial an das ich geschrieben habe (das obige Beispiel stammt davon). Dies reicht vom Hinzufügen von Feldern über das Speichern der Daten bis zum Hinzufügen einer Meta-Box, damit Sie die zusätzlichen Felder auch im Back-End bearbeiten können.

6
chrisguitarguy

Um Ihr zusätzliches Feld zu speichern, müssen Sie Folgendes tun:

function save_comment_meta_data( $comment_id ) {
    add_comment_meta( $comment_id, 'extra_field', $_POST[ 'extra_field' ] );
}
add_action( 'comment_post', 'save_comment_meta_data' );

Siehe dieses nette Tutorial das zusätzliche Felder in Kommentarformularen behandelt.

4
mike23

Schauen Sie sich dieses Plugin an http://www.solaceten.info

(Offenlegung: Ich bin der Co-Autor. Das Plugin ist kostenlos, wird aber nicht mehr gepflegt.)

0
Sol