From b80a8763c757ac63d37321e848d167638f72f8bb Mon Sep 17 00:00:00 2001 From: spacedmonkey Date: Tue, 27 Jun 2023 14:35:29 +0000 Subject: [PATCH] Database: Move the if statement outside of the loop. In the foreach loop of last results, move the if statement outside of the loop. There is no need to check every element in the array for the output type. Do this once outside of the loop. For large database queries with lots of rows returned, this should improve PHP performance. Props spacedmonkey, Cybr, johnbillion, costdev, joemcgill. Fixes #56541. Built from https://develop.svn.wordpress.org/trunk@56066 git-svn-id: http://core.svn.wordpress.org/trunk@55578 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/blocks/cover.php | 27 ++++++++++++--------------- wp-includes/class-wpdb.php | 8 +++++--- wp-includes/version.php | 2 +- 3 files changed, 18 insertions(+), 19 deletions(-) diff --git a/wp-includes/blocks/cover.php b/wp-includes/blocks/cover.php index e5a497fd76..5f6b2cadaa 100644 --- a/wp-includes/blocks/cover.php +++ b/wp-includes/blocks/cover.php @@ -34,7 +34,7 @@ function render_block_core_cover( $attributes, $content ) { /* * Inserts the featured image between the (1st) cover 'background' `span` and 'inner_container' `div`, - * and removes eventual withespace characters between the two (typically introduced at template level) + * and removes eventual whitespace characters between the two (typically introduced at template level) */ $inner_container_start = '/]+wp-block-cover__inner-container[\s|"][^>]*>/U'; if ( 1 === preg_match( $inner_container_start, $content, $matches, PREG_OFFSET_CAPTURE ) ) { @@ -46,22 +46,19 @@ function render_block_core_cover( $attributes, $content ) { update_post_thumbnail_cache(); } $current_featured_image = get_the_post_thumbnail_url(); - - $styles = 'background-image:url(' . esc_url( $current_featured_image ) . '); '; - - if ( isset( $attributes['minHeight'] ) ) { - $height_unit = empty( $attributes['minHeightUnit'] ) ? 'px' : $attributes['minHeightUnit']; - $height = " min-height:{$attributes['minHeight']}{$height_unit}"; - - $styles .= $height; + if ( ! $current_featured_image ) { + return $content; } - $content = preg_replace( - '/class=\".*?\"/', - '${0} style="' . $styles . '"', - $content, - 1 - ); + $processor = new WP_HTML_Tag_Processor( $content ); + $processor->next_tag(); + + $styles = $processor->get_attribute( 'style' ); + $merged_styles = ! empty( $styles ) ? $styles . ';' : ''; + $merged_styles .= 'background-image:url(' . esc_url( $current_featured_image ) . ');'; + + $processor->set_attribute( 'style', $merged_styles ); + $content = $processor->get_updated_html(); } return $content; diff --git a/wp-includes/class-wpdb.php b/wp-includes/class-wpdb.php index 59a8a8ca89..900ce42971 100644 --- a/wp-includes/class-wpdb.php +++ b/wp-includes/class-wpdb.php @@ -3137,11 +3137,13 @@ class wpdb { } elseif ( ARRAY_A === $output || ARRAY_N === $output ) { // Return an integer-keyed array of... if ( $this->last_result ) { - foreach ( (array) $this->last_result as $row ) { - if ( ARRAY_N === $output ) { + if ( ARRAY_N === $output ) { + foreach ( (array) $this->last_result as $row ) { // ...integer-keyed row arrays. $new_array[] = array_values( get_object_vars( $row ) ); - } else { + } + } else { + foreach ( (array) $this->last_result as $row ) { // ...column name-keyed row arrays. $new_array[] = get_object_vars( $row ); } diff --git a/wp-includes/version.php b/wp-includes/version.php index cfe4220246..bc1b267485 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '6.3-alpha-56065'; +$wp_version = '6.3-alpha-56066'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.