web-dev-qa-db-fra.com

comment_reply_link () ne s'affiche pas

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

3
olliew

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.

3
birgire