web-dev-qa-db-fra.com

Supprimer le champ "Site Web" de Commentaires et réponses?

Afin de lutter contre le spam par les commentaires, j'aimerais masquer ou supprimer le champ "Site Web" de la section "Laisser un commentaire" pour les commentaires de page et de site.

Je ne souhaite pas augmenter le classement des autres pages en leur demandant d'intégrer leurs URL dans les commentaires de mon site, ce qui semble être ce que 99% des commentaires de mon site souhaitent faire.

J'utilise le thème Twenty Ten si cela fait une différence dans la réponse.

Merci!

8
cpuguru

Créez un fichier dans wp-content/plugins/ avec ce code:

<?php
/*
Plugin Name: Get Rid of Comment Websites
*/
function my_custom_comment_fields( $fields ){
  if(isset($fields['url']))
    unset($fields['url']);
  return $fields;
}

add_filter( 'comment_form_default_fields', 'my_custom_comment_fields' );

Normalement, je dirais de le mettre dans le fichier functions.php de votre thème, mais je ne le recommanderais pas pour un thème qui pourrait être mis à jour comme Twenty Ten. De cette façon, vous pourrez ajouter cette fonctionnalité en tant que plugin pouvant être désactivé.

13
John P Bloch

Pas une solution parfaite, les autres solutions sont bien

Au lieu de modifier PHP, le formulaire de commentaires, peu importe la façon dont il s'agit d'un seul champ de saisie, que ce soit là s'il est chargé et masqué, Au lieu d'écrire des instructions if ou rewrite le formulaire de commentaires

masquez simplement le champ URL

.comment-form-url {
    display: none;
}
0
bhv

Outre la bonne réponse de John, j'utilise une solution plus simple qui me permet de mieux contrôler le formulaire de commentaire et ses champs.

Par défaut, le comments.php de votre thème ( celui de Twenty Eleven, par exemple ) peut avoir quelque chose comme ceci - <?php comment_form(); ?>

Maintenant, utiliser <?php comment_form(); ?> est identique à:

<?php
    $args = array(
        'fields' => array(
                        'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
                                        '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
                        'email'  => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
                                        '<input id="email" name="email" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>',
                        'url'    => '<p class="comment-form-url"><label for="url">' . __( 'Website' ) . '</label>' .
                                        '<input id="url" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /></p>',
        );
    );
    comment_form( $args );
?>

Autant que je sache, autant que je sache, la version plus longue vous offre plus de flexibilité. Comme dans votre cas, vous ne souhaitez pas afficher le champ du site Web. Donc, vous supprimez simplement le paramètre url dans le tableau fields, et le résultat final est le suivant:

<?php
    $args = array(
        'fields' => array(
                        'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
                                        '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
                        'email'  => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
                                        '<input id="email" name="email" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>',
        );
    );
    comment_form( $args );
?>

... ce dont vous avez besoin.

Lecture recommandée: Référence des fonctions du Codex WordPress/comment_form

Fichier source: (version principale - la plus récente) http://core.svn.wordpress.org/trunk/wp-includes/comment-template.php

0
its_me

Supprimer le champ de site Web du formulaire de commentaire est assez facile. Ci-dessous le code avec seulement quelques lignes:

function cs_remove_comment_website_fields($fields) {
  unset($fields['url']);
  return $fields;
}
add_filter('comment_form_default_fields','cs_remove_comment_website_fields');

Source: Comment supprimer le champ de site Web d'un commentaire WordPress?

0