Après avoir essayé de modifier les titres et les champs du formulaire de commentaire en vain pendant plusieurs minutes, j’ai trouvée une solution vraiment toute bête mais il fallait y penser !
Et mon astuce fonctionne SANS toucher au core – ce qui est mieux car sinon avec les mise à jour vos modifications sauterons !
Et ben vous avez juste à copiez le code de la fonction comment_form() qui est situé dans le fichier wp-includes/comment-templates.php, de la coller dans votre fichier de fonction(wp-content/themes/votre_theme/function.php) et de la renommer – par exemple comment_form_modifs() !
Maintenant vous pouvez faire toutes les modifs que vous voulez, elles seront prises en compte directement !
EDIT : Oups, merci à l’un de mes lecteur de m’avoir fait par d’un petit oubli !
Pour dire à WordPress d’utiliser votre fonction et non celle de base, il faut remplacer l’appel à la fonction comment_form();
(ligne 38 du fichier comments.php (thème twentythirteen)) par celle que vous avez créé, par exemple comment_form_modifs();
Fonction initiale:
<?php
function comment_form($args = array(), $post_id = null){
global $id;
if(null === $post_id) $post_id = $id; else $id = $post_id;
$commenter = wp_get_current_commenter();
$user = wp_get_current_user();
$user_identity = $user->exists() ? $user->display_name: '';
$req = get_option('require_name_email');
$aria_req =($req ? " aria-required='true'": '');
$fields = array(
'author' => '<p class="comment-form-author">'.'<label for="author">'.__('Name') .($req ? ' <span class="required">*</span>': '').'</label> ' . '</p>',
'email' => '<p class="comment-form-email"><label for="email">'.__('Email') .($req ? ' <span class="required">*</span>': '').'</label> ' . '</p>',
'url' => '<p class="comment-form-url"><label for="url">'.__('Website').'</label>' . '</p>',
);
$required_text = sprintf(' '.__('Required fields are marked %s'), '<span class="required">*</span>');
$defaults = array(
'fields' => apply_filters('comment_form_default_fields', $fields),
'comment_field' => '<p class="comment-form-comment"><label for="comment">'._x('Comment', 'noun').'</label><textarea id="comment" cols="45" name="comment" rows="8"></textarea></p>',
'must_log_in' => '<p class="must-log-in">'.sprintf(__('You must be <a href="%s">logged in</a> to post a comment.'), wp_login_url(apply_filters('the_permalink', get_permalink($post_id)))).'</p>',
'logged_in_as' => '<p class="logged-in-as">'.sprintf(__('Logged in as <a href="%1$s">%2$s</a>. <a title="Log out of this account" href="%3$s">Log out?</a>'), get_edit_user_link(), $user_identity, wp_logout_url(apply_filters('the_permalink', get_permalink($post_id)))).'</p>',
'comment_notes_before' => '<p class="comment-notes">'.__('Your email address will not be published.') .($req ? $required_text: '').'</p>',
'comment_notes_after' => '<p class="form-allowed-tags">'.sprintf(__('You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: %s'), ' <code>'.allowed_tags().'</code>').'</p>',
'id_form' => 'commentform',
'id_submit' => 'submit',
'title_reply' => __('Leave a Reply'),
'title_reply_to' => __('Leave a Reply to %s'),
'cancel_reply_link' => __('Cancel reply'),
'label_submit' => __('Post Comment'), ); $args = wp_parse_args($args, apply_filters('comment_form_defaults', $defaults));
?>
<div id="respond">
<h3 id="reply-title"> </h3>
<form id="" action="" method="post">$field){ echo apply_filters("comment_form_field_{$name}", $field)."n"; } do_action('comment_form_after_fields'); ?>
<p class="form-submit"><input id="" name="submit" type="submit" value="" /></p>
</form></div><!-- #respond -->
<?php
do_action("comment_form_after");
else:
do_action("comment_form_comments_closed");
endif;
}
Fonction modifiée:
function comment_form_modifs($args = array(), $post_id = null){
global $id;
if(null === $post_id) $post_id = $id; else $id = $post_id;
$commenter = wp_get_current_commenter();
$user = wp_get_current_user();
$user_identity = $user->exists() ? $user->display_name: '';
$req = get_option('require_name_email');
$aria_req =($req ? " aria-required='true'": '');
$fields = array(
'author' => '',
'email' => '',
);
$required_text = sprintf(' '.__('Required fields are marked %s'), '<span class="required">*</span>');
$defaults = array(
'fields' => apply_filters('comment_form_default_fields', $fields),
'comment_field' => '<textarea id="comment" class="comment-form-comment" cols="45" name="comment" rows="8"></textarea>',
'must_log_in' => '<p class="must-log-in">'.sprintf(__('You must be <a href="%s">logged in</a> to post a comment.'), wp_login_url(apply_filters('the_permalink', get_permalink($post_id)))).'</p>',
'logged_in_as' => '<p class="logged-in-as">'.sprintf(__('Logged in as <a href="%1$s">%2$s</a>. <a title="Log out of this account" href="%3$s">Log out?</a>'), get_edit_user_link(), $user_identity, wp_logout_url(apply_filters('the_permalink', get_permalink($post_id)))).'</p>',
'id_form' => 'commentform',
'id_submit' => 'submit',
'title_reply' => __('Ask us your questions about this product', 'twentytwelve'),
'title_reply_to' => __('Leave a question to %s', 'twentytwelve'),
'cancel_reply_link' => __('Cancel question', 'twentytwelve'),
'label_submit' => __('Send', 'twentytwelve'),
);
$args = wp_parse_args($args, apply_filters('comment_form_defaults', $defaults));
if(comments_open($post_id)): do_action('comment_form_before'); echo '<div id="respond">';
echo '<h3 id="reply-title">';
comment_form_title($args['title_reply'], $args['title_reply_to']);
echo '<small>';
cancel_comment_reply_link($args['cancel_reply_link']);
echo '</small></h3>';
if(get_option('comment_registration') && !is_user_logged_in()):
echo $args['must_log_in'];
do_action('comment_form_must_log_in_after');
else:
echo '<form id="'.esc_attr($args['id_form']).'" action="'.site_url('/wp-comments-post.php').'" method="post">';
do_action('comment_form_top');
if(is_user_logged_in()):
echo apply_filters('comment_form_logged_in', $args['logged_in_as'], $commenter, $user_identity);
do_action('comment_form_logged_in_after', $commenter, $user_identity);
else:
echo $args['comment_notes_before'];
do_action('comment_form_before_fields');
foreach((array) $args['fields'] as $name => $field){
echo apply_filters("comment_form_field_{$name}", $field)."n";
}
do_action('comment_form_after_fields');
endif;
echo apply_filters('comment_form_field_comment', $args['comment_field']);
echo $args['comment_notes_after'];
echo '<p class="form-submit">';
echo '';
comment_id_fields($post_id);
echo '</p>';
do_action('comment_form', $post_id);
echo '</form>';
endif;
echo '</div>'; // #respond
do_action('comment_form_after');
else:
do_action('comment_form_comments_closed');
endif;
}
Sinon, si vous voulez juste ajouter ou supprimer une champs, il y a également ce tuto: Personnaliser les champs du formulaire de commentaire