web-dev-qa-db-fra.com

Ajouter un commentaire champ personnalisé

J'ai cherché beaucoup de fil au sujet de mon problème, mais malheureusement je n'ai rien trouvé qui fonctionne et c'est mon option finale. Je souhaite ajouter des champs personnalisés à mon formulaire de commentaire. Comment puis je faire ça?

1
markyeoj

Ici vous allez: Ajout de champs personnalisés à des formulaires de commentaires WordPress?

Et un autre article génial sur ceci: http://wpengineer.com/2214/adding-input-fields-to-the-comment-form/

Des fonctions sont disponibles pour ajouter/mettre à jour, supprimer des méta de commentaire, semblables aux méta de publication et d'utilisateur.

Edit: Voici un exemple pour vous donner un début (mettez le code dans le functions.php ou dans un plugin personnalisé):

Ajoutez les champs au formulaire de commentaire:

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 fonctions pour récupérer/ajouter/mettre à jour/supprimer un méta de commentaire:

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

C'est ici que vous feriez les validations:

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

Et enregistrez le méta de commentaire:

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

Récupérer et afficher les méta de commentaires:

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

( Note : Tout le code provient du lien WPengineer que j'ai posté ci-dessus. Il y a plus de détails et d'utilisations avancées dans cet article, vérifiez-les aussi!)

5
Rutwick Gangurde

Ce diaporama de Beau Lebens devrait pouvoir vous montrer comment: Accrocher les commentaires

Et ce billet de blog d'Otto devrait pouvoir vous en montrer plus: WordPress 3.0 Thème Astuce: Le formulaire de commentaire

Il existe également un plugin de base disponible ici appelé "Plugin Wordpress: Champs de commentaires supplémentaires" (désolé, je ne peux pas poster le lien).

1
Aleks