From 29bfc56ca2865388153987996649700e3ed239d5 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Fri, 21 Aug 2020 21:32:49 +0000 Subject: [PATCH] Code Modernization: Fix PHP 8 "argument must be passed by reference, value given" error in `WP_Comment_Query::get_comments()`. The WP native `get_comment()` function expects the first argument `$comment` to be passed by reference. The PHP `array_map()` function, however, passes by value, not by reference, resulting in an "arguments must be passed by reference, value given" error. The PHP native `array_walk()` function does pass by reference. Using this prevents the error on PHP 8 and maintains the existing behaviour on PHP < 8. Props jrf. See #50913. git-svn-id: https://develop.svn.wordpress.org/trunk@48838 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/class-wp-comment-query.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/wp-includes/class-wp-comment-query.php b/src/wp-includes/class-wp-comment-query.php index bbc6fe2d66..e185ceb40e 100644 --- a/src/wp-includes/class-wp-comment-query.php +++ b/src/wp-includes/class-wp-comment-query.php @@ -481,7 +481,8 @@ class WP_Comment_Query { $_comments = apply_filters_ref_array( 'the_comments', array( $_comments, &$this ) ); // Convert to WP_Comment instances. - $comments = array_map( 'get_comment', $_comments ); + array_walk( $_comments, 'get_comment' ); + $comments = $_comments; if ( $this->query_vars['hierarchical'] ) { $comments = $this->fill_descendants( $comments );