Je travaille actuellement à la conception de mon premier blog WordPress et je me suis retrouvé coincé quand je suis arrivé à coder le bouton commentaire-réponse parce que je veux que le commentaire-réponse-bouton soit codé dans span élément uniquement non a élément du tout. Je sais que c'est possible parce que j'ai vu cela sur un blog:
Ça marche. Mais, j'ai essayé de mon mieux mais je ne pouvais pas travailler. Voulez-vous des experts s'il vous plaît aidez-moi! Je parle du custom callback que j'utilise comme système de commentaires, jetez-y un coup d'œil et donnez-moi une solution.
function comment($comment, $args, $depth) {$GLOBALS['comment'] = $comment; ?>
<li <?php comment_class(); ?> id="comment-<?php comment_ID() ?>">
<div id="div-comment-<?php comment_ID() ?>" class="comment-body">
<div class="comment-author">
<cite class="fn"><?php printf(__('%s'), get_comment_author_link()) ?></cite>
</div>
<?php comment_text(); ?>
<div class="comment-reply">
**** HERE <SPAN> ELEMENT FOR REPLY-BUTTON WILL BE PLACED ****
</div>
</div>
<?php } ?>
Voici le formulaire de commentaire personnalisé pour répondre également.
Vous pouvez générer un élément de réponse de commentaire personnalisé comme suit:
_ {Ceci remplacera le **** HERE <SPAN> ELEMENT FOR REPLY-BUTTON WILL BE PLACED ****
.
<?php if ( get_option( 'comment_registration' ) && ! is_user_logged_in() ) : ?>
<a rel="nofollow" class="comment-reply-login" href="<?php // wrapped
echo esc_url( wp_login_url( get_permalink() ) ); ?>">Log in to Reply</a>
<?php else : // User is logged-in or that registration not needed to comment.
// 'respond' is the ID of the comment form's wrapper.
$onclick = sprintf( 'return addComment.moveForm( "%s", "%d", "respond", "%d" )',
'div-comment-' . $comment->comment_ID, $comment->comment_ID, get_the_ID() ); ?>
<span class="btn btn-rwr"
data-href="#comment-<?php echo $comment->comment_ID; ?>" onclick='<?php echo $onclick; ?>'
aria-label="Reply to <?php echo esc_attr( $comment->comment_author ); ?>">Reply</span>
<?php endif; ?>
Le balisage span
est identique à celui de image . Mais vous pouvez le changer facilement ..
Si rien ne se passe lorsque vous cliquez sur l'élément span
personnalisé, assurez-vous que le script de réponse en commentaire (JavaScript) est chargé:(ajoutez ce code au fichier functions.php
du thème))}
add_action( 'wp_enqueue_scripts', function(){
if ( is_singular() && comments_open() && get_option( 'thread_comments' ) ) {
wp_enqueue_script( 'comment-reply' );
}
} );
Et assurez-vous que respond
ci-dessous est l'ID correct du wrapper : du formulaire de commentaire.
$onclick = sprintf( 'return addComment.moveForm( "%s", "%d", "respond", "%d" )'
Et dans votre CSS, vous pouvez également ajouter quelque chose comme:
.comment-reply > span {
cursor: pointer;
}
Pour que le script comment-reply
par défaut (vérifier la mise à jour précédente) fonctionne comme prévu, dans votre commentaire <li>
, .comment-reply
doit être placé inférieur/suivant et non à l'intérieur de le .comment-body
:
<li <?php comment_class(); ?> id="comment-<?php comment_ID() ?>">
<div id="div-comment-<?php comment_ID() ?>" class="comment-body">
...
</div><!-- .comment-body -->
<div class="comment-reply">
...the SPAN here..
</div>
</li>
Et dans votre CSS, vous devriez avoir quelque chose comme:
#respond + .comment-reply {
display: none;
}
pour masquer le bouton "Répondre" span
/après avoir cliqué dessus.