Don't use array_merge() when building comment children arrays.

`array_merge()` is much slower than building the combined array using a
`foreach` loop. The performance difference was causing a speed regression with
the `get_children()` functionality introduced in 4.4.

Merges [35931] to the 4.4 branch.

Props rogerhub.
Fixes #35025.


git-svn-id: https://develop.svn.wordpress.org/branches/4.4@35932 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Boone Gorges 2015-12-14 19:39:31 +00:00
parent 1f56470c0b
commit 270d00cf10

View File

@ -1330,11 +1330,16 @@ function comments_template( $file = '/comments.php', $separate_comments = false
// Trees must be flattened before they're passed to the walker.
$comments_flat = array();
foreach ( $_comments as $_comment ) {
$comments_flat = array_merge( $comments_flat, array( $_comment ), $_comment->get_children( array(
$comments_flat[] = $_comment;
$comment_children = $_comment->get_children( array(
'format' => 'flat',
'status' => $comment_args['status'],
'orderby' => $comment_args['orderby']
) ) );
) );
foreach ( $comment_children as $comment_child ) {
$comments_flat[] = $comment_child;
}
}
/**