wp_list_comments のコーデックスには$reverse_top_level (boolean) (optional) Setting this to true will display the most recent comment first then going back in order.
があります。
私にとってはそれは実際には逆の方法です。 false
オプションは最新のコメントを最初のコメントとして表示し、true
オプションを使用するか、オプションをまったく使用しない場合は最後のコメントを表示します。コメントページネーションが使用されている場合も使用されていない場合も同様です。
同様の動作がreverse_children
オプションにも適用されます。 false
かまったく使われていない場合は最新の子が最初の子です。
TurnKeyでWordPress 3.6.1と共に使用されるコード
$comments = get_comments(array(
'number' => $get_comments_number_approved,
// 'offset' => 10,
'post_id' => $post_id,
'status' => 'approve' ,
'orderby' => 'comment_date_gmt',
'order' => 'DESC'
));
wp_list_comments(array(
'reverse_top_level' => false, //Show the latest comments at the top of the list
'reverse_children' => false,
'page' => $page_number,
'per_page' => $comments_per_page,
// 'avatar_size' => 16,
), $comments);
見逃していませんか?それはバグですか?それともCodexを更新する必要がありますか?
reverse_top_level
のデフォルトはnull
です。それでは、 関数のソース を見てみましょう。
if ( null === $r['reverse_top_level'] )
$r['reverse_top_level'] = ( 'desc' == get_option('comment_order') );
ご覧のとおり、これはcomment_order
オプションからの値を取ります。そしてそれはdesc
かasc
のどちらかです。値がdesc
の場合、それはtrue
に設定されます。今 Walker_Comment
、これは extends Walker
、最後の引数として解析済み引数$r
を取得paged_walk()
のために。そしてそのメソッドはWalker
クラスのメソッドです。その ソース を見てみましょう。そして そこで私たちは 次のように見えることができます:
if ( ! empty( $args[0]['reverse_top_level'] ) )
$elements = array_reverse( $elements );
// does other stuff here
empty
はfalse
または! isset
と等しいnull
を評価するので、この部分は起動しません。それでおしまい。