webentwicklung-frage-antwort-db.com.de

comment_reply_link () wird nicht angezeigt

In functions.php stelle ich eine Kommentarantwort in die Warteschlange und definiere außerdem eine Rückruffunktion für die Verwendung mit 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;
}

Und in comments.php habe ich die Dinge ziemlich minimal gehalten:

<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; ?>

Alles funktioniert, außer dass die Links für die Kommentarantwort für keinen der Kommentare angezeigt werden. Die Dokumentation zum Ändern von Kommentaren im Allgemeinen scheint wirklich schlecht zu sein! Danke für jede Hilfe

3
olliew

Sie sollten versuchen, zu ersetzen

<?php comment_reply_link(); ?>

mit:

<?php comment_reply_link( $args ); ?>

und um sicherzustellen, dass der $args['depth'] nicht Null oder größer oder gleich dem $args['max depth'] ist. Es wird keine Ausgabe geben wenn das nicht der Fall ist.

Wenn dies nicht funktioniert, können Sie versuchen, die Kommentar-ID oder das Kommentarobjekt als zweiten Eingabeparameter zu comment_reply_link( $args, $comment ) hinzuzufügen.

Überprüfen Sie auch, ob die Kommentare offen sind.

Update:

Wenn wir uns default callback ansehen, sehen wir, wie die Argumente von comment_reply_link() aufgebaut sind:

comment_reply_link( array_merge( $args, array(
    'add_below' => $add_below,
    'depth'     => $depth,
    'max_depth' => $args['max_depth'],
    'before'    => '<div class="reply">',
    'after'     => '</div>'
 ) ) );

wo wir sehen können, wie die depth und der max_depth enthalten sind.

3
birgire