webentwicklung-frage-antwort-db.com.de

Kommentar hinzufügen Benutzerdefiniertes Feld

Ich habe viel nach meinem Problem gesucht, aber leider habe ich festgestellt, dass nichts funktioniert, und dies ist meine letzte Option. Ich möchte einige benutzerdefinierte Felder in mein Kommentarformular einfügen. Wie kann ich das machen?

1
markyeoj

Hier gehts: Hinzufügen von benutzerdefinierten Feldern zu WordPress Comment Forms?

Und noch ein großartiger Beitrag dazu: http://wpengineer.com/2214/adding-input-fields-to-the-comment-form/

Es stehen Funktionen zum Hinzufügen/Aktualisieren und Löschen von Kommentar-Metas zur Verfügung, ähnlich wie bei Post- und Benutzer-Metas.

Edit: Hier ist ein Beispiel, um Ihnen einen Anfang zu geben (fügen Sie den Code in den functions.php oder in ein benutzerdefiniertes Plugin ein):

Fügen Sie die Felder zum Kommentarformular hinzu:

add_filter( 'comment_form_defaults', 'change_comment_form_defaults');
function change_comment_form_defaults( $default ) {
    $commenter = wp_get_current_commenter();
    $default[ 'fields' ][ 'email' ] .= '<p class="comment-form-author">' .
                                            '<label for="city">'. __('City') . '</label>
                                        <span class="required">*</span>
                                        <input id="city" name="city" size="30" type="text" /></p>';
    return $default;
}

4 Funktionen zum Abrufen/Hinzufügen/Aktualisieren/Löschen von Kommentar-Metas:

get_comment_meta( $comment_id, $meta_key, $single = false );
add_comment_meta($comment_id, $meta_key, $meta_value, $unique = false );
update_comment_meta($comment_id, $meta_key, $meta_value, $unique = false );
delete_comment_meta( $comment_id, $meta_key, $single = false );

Hier führen Sie die Validierungen durch:

add_filter( 'preprocess_comment', 'verify_comment_meta_data' );
function verify_comment_meta_data( $commentdata ) {
    if ( ! isset( $_POST['city'] ) )
        wp_die( __( 'Error: please fill the required field (city).' ) );
    return $commentdata;
}

Und speichern Sie das Kommentar-Meta:

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

Kommentar-Meta abrufen und anzeigen:

add_filter( 'get_comment_author_link', 'attach_city_to_author' );
function attach_city_to_author( $author ) {
    $city = get_comment_meta( get_comment_ID(), 'city', true );
    if ( $city )
        $author .= " ($city)";
    return $author;
}

( Hinweis : Der gesamte Code stammt von dem WPengineer - Link, den ich oben gepostet habe. In diesem Beitrag finden Sie weitere Details und erweiterte Verwendungsmöglichkeiten. Bitte überprüfen Sie diese auch!)

5

Diese Diashow von Beau Lebens sollte Ihnen zeigen können, wie: In Kommentare einbinden

Und dieser Blogbeitrag von Otto sollte Ihnen mehr zeigen können: WordPress 3.0 Theme Tip: Das Kommentarformular

Es gibt auch ein grundlegendes Plugin namens "Wordpress Plugin: Zusätzliche Kommentarfelder" (der Link kann leider nicht gepostet werden).

1
Aleks