Dans functions.php
, je mets en file d'attente commentaire-réponse et je définis également une fonction de rappel à utiliser avec wp_list_comments()
:
function theme_queue_js(){
if (
! is_admin()
&& is_singular()
&& comments_open()
&& get_option('thread_comments')
)
wp_enqueue_script( 'comment-reply' );
}
add_action('wp_print_scripts', 'theme_queue_js');
function simple_comment_format($comment, $args, $depth) {
$GLOBALS['comment'] = $comment; ?>
<?php if ( $comment->comment_approved == '1'): ?>
<li <?php comment_class(); ?>>
<article>
<time><?php comment_date(); ?></time>
<h4><?php comment_author(); ?></h4>
<?php comment_text(); ?>
<?php comment_reply_link(); ?>
</article>
<?php endif;
}
Et dans comments.php
j'ai gardé les choses plutôt minimes:
<section id="comment-form">
<?php comment_form() ?>
</section>
<?php if ( have_comments() ): ?>
<section class="commentlist">
<h2>Comments!</h2>
<ul>
<?php
wp_list_comments(
'type=comment&max_depth=5&callback=simple_comment_format'
);
?>
</ul>
</section>
<?php endif; ?>
Tout fonctionne correctement, sauf que les liens de réponse aux commentaires n'apparaissent dans aucun des commentaires. La documentation sur la modification des commentaires en général semble vraiment mauvaise! Merci pour toute aide
Vous devriez essayer de remplacer
<?php comment_reply_link(); ?>
avec:
<?php comment_reply_link( $args ); ?>
et pour vous assurer que le $args['depth']
n'est pas égal à zéro ou supérieur ou égal au $args['max depth']
. Il n'y aura pas de sortie si ce n'est pas le cas.
Si cela ne fonctionne pas, vous pouvez essayer d'ajouter l'ID de commentaire ou l'objet de commentaire comme deuxième paramètre d'entrée à comment_reply_link( $args, $comment )
.
Vérifiez également si les commentaires sont ouverts.
Mise à jour:
Si nous regardons le callback default , nous voyons comment les arguments de comment_reply_link()
sont construits:
comment_reply_link( array_merge( $args, array(
'add_below' => $add_below,
'depth' => $depth,
'max_depth' => $args['max_depth'],
'before' => '<div class="reply">',
'after' => '</div>'
) ) );
où nous pouvons voir comment les variables depth
et max_depth
sont incluses.