web-dev-qa-db-fra.com

Comment ajouter une classe au bouton de soumission de commentaire?

Comment ajouter une classe au bouton d'envoi de commentaires? La fonction simplifiée comment_form(array('id_submit'=>'buttonPro')); ne change évidemment que l'id et class_submit ne semble pas exister.

J'ai lu les deux Otto et Beau's Writeups mais en vain.

6
torinagrippa

Si vous extrayez la source de la fonction comment_form(), vous verrez qu'elle n'imprime même pas une classe sur l'entrée;

<input name="submit" type="submit" id="<?php echo esc_attr( $args['id_submit'] ); ?>" value="<?php echo esc_attr( $args['label_submit'] ); ?>" />

Je suppose que vous devez ajouter une classe de style? Pourquoi ne pas modifier votre CSS pour simplement;

input.submit, #buttonPro {
    /* some awesome style */
}

Sinon, je suppose que la solution la plus simple serait simplement de copier la fonction dans votre functions.php, de le renommer, d’ajouter un argument de classe & print et d’utiliser celui-ci - que vous pouvez trouver ici ;)

6
TheDeadMedic

À partir de WordPress version 4.1 ( billet de train # 20446 ) il est maintenant ajouté pour passer votre propre classe en tant qu'argument de comment_form($args) en utilisant 'class_submit' clé de tableau:

$args = array( 'class_submit' => 'btn btn-default' );

Pas besoin de travailler très dur. (Edité le Codex aussi) :)

9
Mayeenul Islam

Je travaille aussi avec le framework Foundation. J'ai trouvé que le moyen le plus simple d'ajouter une classe à un élément non filtrable est de le faire avec jQuery.

jQuery(document).ready(function($) { //noconflict wrapper
    $('input#submit').addClass('button');
});//end noconflict
7
Philip Downer

Pourquoi avez-vous besoin d'un cours sur le bouton d'envoi? Vous pouvez lui attribuer un identifiant, comme vous l'avez découvert, et c'est tout ce dont vous avez besoin pour le styler.

comment_form(array('id_submit'=>'buttonPro'));

Puis pour le coiffer:

input#buttonPro {...}

Simple. Ou, si vous préférez utiliser les classes uniquement pour une raison quelconque:

.form-submit input {...}

Je ne vois aucun avantage, de quelque angle que ce soit, à mettre une classe sur le bouton de soumission du formulaire de commentaire.

3
Otto

Je recherchais la même solution et, enfin, j'ai trouvé la solution, le code ci-dessous a parfaitement fonctionné pour moi. Je voulais ajouter la classe "btn btn-primary" au bouton de soumission sous forme de commentaire.

ob_start();
comment_form( $args );
$form = ob_get_clean(); 
$form = str_replace('class="comment-form"','class="comment-form"', $form);
echo str_replace('id="submit"','class="btn btn-primary"', $form);

les $ args que j'ai utilisés sont

$args = array(
'comment_field' => '<p class="comment-form-comment"><label for="comment">Comment</label> <textarea class="form-control" id="comment" name="comment" cols="35" rows="12" aria-required="true"></textarea></p>',
'fields'        => array(
    'author' => '<p class="comment-form-author"><label for="author">Name <span class="required">*</span></label> <input class="form-control input-comment-author" id="author" name="author" type="text" value="" size="30" aria-required="true"></p>',
    'email'  => '<p class="comment-form-email"><label for="email">Email <span class="required">*</span></label> <input class="form-control input-comment-email" id="email" name="email" type="text" value="" size="30" aria-required="true"></p>',
    'url'    => '<p class="comment-form-url"><label for="url">Website</label> <input class="form-control input-comment-url" id="url" name="url" type="text" value="" size="30"></p>',
),
'cancel_reply_link' => '<button class="btn btn-danger btn-xs">Cancel reply</button>',
'label_submit' => 'Post Comment',);
1
Aamer Shahzad

Je suggère à ceux qui ont ce problème de définir un style pour id "post-comment", comme ce que j'ai fait:

#post-comment {
background: none repeat scroll 0 0 transparent;
border: 1px solid #FFFFFF;
padding: 8px 20px;
float: left;}

bonne chance! :)

1
Marjan