functions.php
では、comment-replyをエンキューし、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;
}
そしてcomments.php
では、物事を最小限に抑えました。
<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; ?>
コメント返信リンクがどのコメントにも表示されないことを除けば、すべて問題なく機能しています。一般にコメントを修正することに関するドキュメンテーションは本当に悪いようです!助けてくれてありがとう
あなたは交換しようとするべきです
<?php comment_reply_link(); ?>
と:
<?php comment_reply_link( $args ); ?>
$args['depth']
がゼロまたは$args['max depth']
以上ではないことを確認します。 何も出力されません そうでない場合は/。
それでもうまくいかない場合は、コメントIDまたはコメントオブジェクトをcomment_reply_link( $args, $comment )
の2番目の入力パラメータとして追加してみてください。
コメントがopenであるかどうかも確認してください。
更新:
defaultコールバック を見ると、comment_reply_link()
の引数がどのように構成されているかがわかります。
comment_reply_link( array_merge( $args, array(
'add_below' => $add_below,
'depth' => $depth,
'max_depth' => $args['max_depth'],
'before' => '<div class="reply">',
'after' => '</div>'
) ) );
depth
とmax_depth
がどのように含まれているかを見ることができます。