web-dev-qa-db-fra.com

Modification de la position de cancel_comment_reply_link et d'autres éléments du formulaire de commentaire

Comment déplacer des éléments du formulaire de commentaire WordPress, appelé dans comments.php, avec les éléments suivants:

<?php comment_form(); ?>

Par exemple, j'aimerais envelopper cancel_comment_reply_link dans des balises h4 et le placer sous get_post_reply_link. Mais je ne vois aucun moyen de le faire.

Auparavant, tout le code du formulaire de commentaire était là dans comments.php. Vous pouvez facilement déplacer les éléments et les placer où vous le souhaitez. Maintenant, tous ces éléments sont enterrés en tant que fonctions dans comments-template.php.

Quelqu'un a-t-il créé une fonction et un rappel similaires à ceux existant pour wp_list_comments qui permettent d'accéder aux éléments du formulaire de commentaire?

Si tel est le cas, nous pourrions plus facilement modifier le code pour déplacer des liens, des libellés et des champs.

2
user5486

Je pense que votre meilleur choix est de jeter un coup d'œil au message d'Otto sur le formulaire de commentaire et ses fonctions, ici: http://ottopress.com/2010/wordpress-3-0-theme- tip-the-comment-form/

Si vous voulez aller droit au but, vous pouvez ajouter cette fonction à votre functions.php:

function my_fields($fields) {
$fields['new'] = '<p>Some new input field here</p>';
return $fields;
}
add_filter('comment_form_default_fields','my_fields');

Puis définissez de nouvelles valeurs par défaut, en modifiant votre code HTML et vos classes/identifiants comme vous le souhaitez:

$defaults = array(
    'fields'               => apply_filters( 'comment_form_default_fields', $fields ),
    'comment_field'        => '<p class="comment-form-comment">...',
    'must_log_in'          => '<p class="must-log-in">...',
    'logged_in_as'         => '<p class="logged-in-as">...',
    'comment_notes_before' => '<p class="comment-notes">...',
    'comment_notes_after'  => '<dl class="form-allowed-tags">...',
    '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' ),
);

Dans ce cas, je ne sais pas si vous pouvez appliquer une classe ou un ID directement au "lien de réponse". Vous pouvez essayer de l'envelopper dans une balise <span> ici, ou simplement utiliser du javascript créatif pour la trouver et appliquer une classe:

$('a:contains("Cancel Reply")').addClass('cancel-reply-link');
1
Tom