Aggiungere un Campo Personalizzato ai Commenti

28 giu 2012, 09:33:41
Visualizzazioni: 19.9K
Voti: 1

Ho cercato molte discussioni riguardo il mio problema, ma sfortunatamente non ho trovato nulla che funzionasse, e questa è la mia ultima opzione. Voglio aggiungere alcuni campi personalizzati al mio modulo dei commenti. Come posso farlo?

0
Tutte le risposte alla domanda 2
0
10

Ecco qui: Aggiungere campi personalizzati ai form dei commenti di WordPress?

E un altro fantastico post sull'argomento: http://wpengineer.com/2214/adding-input-fields-to-the-comment-form/

Sono disponibili funzioni per aggiungere/aggiornare, eliminare i meta dei commenti, simili ai meta dei post e degli utenti.

Modifica: Ecco un esempio per iniziare (inserisci il codice nel functions.php o in un plugin personalizzato):

Aggiungere i campi al form dei commenti:

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">'. __('Città') . '</label>
                                        <span class="required">*</span>
                                        <input id="city" name="city" size="30" type="text" /></p>';
    return $default;
}

4 funzioni per recuperare/aggiungere/aggiornare/eliminare i meta dei commenti:

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 );

Qui è dove si possono fare le validazioni:

add_filter( 'preprocess_comment', 'verify_comment_meta_data' );
function verify_comment_meta_data( $commentdata ) {
    if ( ! isset( $_POST['city'] ) )
        wp_die( __( 'Errore: per favore compila il campo obbligatorio (città).' ) );
    return $commentdata;
}

E salvare i meta del commento:

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

Recuperare e visualizzare i meta dei commenti:

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;
}

(Nota: Tutto il codice proviene dal link di WPengineer che ho postato sopra. Ci sono molti più dettagli e usi avanzati in quel post, dai un'occhiata anche a quelli!)

28 giu 2012 10:01:45
2

Questa presentazione di Beau Lebens dovrebbe mostrarti come fare: Hooking into Comments

E questo articolo del blog di Otto dovrebbe mostrarti di più: WordPress 3.0 Theme Tip: The Comment Form

È disponibile anche un plugin base qui chiamato "Wordpress Plugin: Extra Comment Fields" (mi dispiace non posso postare il link).

28 giu 2012 10:02:56
Commenti

I link possono essere eliminati. Per favore, migliora la tua risposta con parte del contenuto che hai trovato sui link. Sarebbe meglio aggiungere un esempio.

kaiser kaiser
28 giu 2012 10:31:20

grazie per la risposta amico, mi è stata utile ma preferisco scegliere la risposta di rutwick. Grazie :)

markyeoj markyeoj
28 giu 2012 10:41:12