私はカスタムコメントテンプレートを作っています、そして私はコメントを表示するためにリストを使いたくありません。
デフォルトでは、WordPressは各コメントの最後に以下を追加します。
</li><!-- #comment-## -->
私はコアwp-includes/comment-template.php
をハッキングすることができることを知っています、しかしそれは私が正常に更新することができないことを残すでしょう。これを削除する方法はありますか?
これが私の関数コールバックです:
<section id="li-comment-<?php comment_ID(); ?>">
<article id="comment-<?php comment_ID(); ?>" class="comment <?php if ($comment->comment_author_email == get_the_author_email()) { echo 'author-comment'; } ?>">
<div class="comment-content">
<aside class="comment-gravatar">
<?php echo get_avatar($comment, '50'); ?>
</aside>
<?php comment_text(); ?>
</div>
<div class="comment-data">
<div class="comment-author">
<p>Posted by : <?php echo get_comment_author(); ?></p>
<p>On <?php the_time('l, F jS, Y') ?> at <?php the_time() ?></p>
</div>
<div class="comment-reply">
<?php comment_reply_link( array_merge( $args, array( 'reply_text' => 'Reply to Comment', 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
</div>
</div>
</article>
</section>
wp_list_comments()
は、最初のパラメータの配列にwalker
を受け入れます。これは出力をレンダリングするクラスです。指定しない場合は、デフォルトのクラスWalker_Comment
が使用されます。 wp-includes/comment-template.php
にあります。
完全なコメントリストを変更するには、あなたのfunctions.php
にデフォルトのクラスextends
でカスタムウォーカーを作成してください。
class WPSE_127257_Walker_Comment extends Walker_Comment
{
function start_lvl( &$output, $depth = 0, $args = array() ) {
// do nothing.
}
function end_lvl( &$output, $depth = 0, $args = array() ) {
// do nothing.
}
function end_el( &$output, $comment, $depth = 0, $args = array() ) {
// do nothing, and no </li> will be created
}
protected function comment( $comment, $depth, $args ) {
// create the comment output
// use the code from your old callback here
}
}
wp_list_comments()
を呼び出すときには、そのクラスを使用します。
wp_list_comments(
array (
'walker' => new WPSE_127257_Walker_Comment
)
);