Commit e1e3fc707b for wordpress.org

commit e1e3fc707b3ebf1a6fab8a21e7e79f9b6931421b
Author: Sergey Biryukov <sergeybiryukov.ru@gmail.com>
Date:   Mon Dec 22 23:14:38 2025 +0000

    Code Modernization: Replace some `isset()` ternary checks with null coalescing.

    Since PHP 7.0 introduced the [https://www.php.net/manual/en/migration70.new-features.php#migration70.new-features.null-coalesce-op null coalescing operator], and WordPress now requires at least PHP 7.2.24, `isset( $var ) ? $var : null` ternary checks can be safely replaced with the more concise `$var ?? null` syntax.

    As some new code using the null coalescing operator has already been introduced into core in recent releases, this commit continues with the code modernization by implementing incremental changes for easier review.

    Props seanwei, getsyash, krupalpanchal, wildworks, jorbin, SergeyBiryukov.
    Fixes #63430. See #58874.
    Built from https://develop.svn.wordpress.org/trunk@61403


    git-svn-id: http://core.svn.wordpress.org/trunk@60715 1a063a9b-81f0-0310-95a4-ce76da25c4cd

diff --git a/wp-includes/class-wp-comment-query.php b/wp-includes/class-wp-comment-query.php
index b2a9275c52..cfabfd7e6b 100644
--- a/wp-includes/class-wp-comment-query.php
+++ b/wp-includes/class-wp-comment-query.php
@@ -949,12 +949,12 @@ class WP_Comment_Query {
 		 */
 		$clauses = apply_filters_ref_array( 'comments_clauses', array( compact( $pieces ), &$this ) );

-		$fields  = isset( $clauses['fields'] ) ? $clauses['fields'] : '';
-		$join    = isset( $clauses['join'] ) ? $clauses['join'] : '';
-		$where   = isset( $clauses['where'] ) ? $clauses['where'] : '';
-		$orderby = isset( $clauses['orderby'] ) ? $clauses['orderby'] : '';
-		$limits  = isset( $clauses['limits'] ) ? $clauses['limits'] : '';
-		$groupby = isset( $clauses['groupby'] ) ? $clauses['groupby'] : '';
+		$fields  = $clauses['fields'] ?? '';
+		$join    = $clauses['join'] ?? '';
+		$where   = $clauses['where'] ?? '';
+		$orderby = $clauses['orderby'] ?? '';
+		$limits  = $clauses['limits'] ?? '';
+		$groupby = $clauses['groupby'] ?? '';

 		$this->filtered_where_clause = $where;

diff --git a/wp-includes/class-wp-customize-manager.php b/wp-includes/class-wp-customize-manager.php
index 3026d3b039..6ecc5c33e3 100644
--- a/wp-includes/class-wp-customize-manager.php
+++ b/wp-includes/class-wp-customize-manager.php
@@ -1226,9 +1226,9 @@ final class WP_Customize_Manager {
 		$sidebars_widgets = isset( $starter_content['widgets'] ) && ! empty( $this->widgets ) ? $starter_content['widgets'] : array();
 		$attachments      = isset( $starter_content['attachments'] ) && ! empty( $this->nav_menus ) ? $starter_content['attachments'] : array();
 		$posts            = isset( $starter_content['posts'] ) && ! empty( $this->nav_menus ) ? $starter_content['posts'] : array();
-		$options          = isset( $starter_content['options'] ) ? $starter_content['options'] : array();
+		$options          = $starter_content['options'] ?? array();
 		$nav_menus        = isset( $starter_content['nav_menus'] ) && ! empty( $this->nav_menus ) ? $starter_content['nav_menus'] : array();
-		$theme_mods       = isset( $starter_content['theme_mods'] ) ? $starter_content['theme_mods'] : array();
+		$theme_mods       = $starter_content['theme_mods'] ?? array();

 		// Widgets.
 		$max_widget_numbers = array();
@@ -1495,7 +1495,7 @@ final class WP_Customize_Manager {
 			$this->set_post_value(
 				$nav_menu_setting_id,
 				array(
-					'name' => isset( $nav_menu['name'] ) ? $nav_menu['name'] : $nav_menu_location,
+					'name' => $nav_menu['name'] ?? $nav_menu_location,
 				)
 			);
 			$this->pending_starter_content_settings_ids[] = $nav_menu_setting_id;
@@ -5239,10 +5239,10 @@ final class WP_Customize_Manager {
 					'label'         => __( 'Logo' ),
 					'section'       => 'title_tagline',
 					'priority'      => 8,
-					'height'        => isset( $custom_logo_args[0]['height'] ) ? $custom_logo_args[0]['height'] : null,
-					'width'         => isset( $custom_logo_args[0]['width'] ) ? $custom_logo_args[0]['width'] : null,
-					'flex_height'   => isset( $custom_logo_args[0]['flex-height'] ) ? $custom_logo_args[0]['flex-height'] : null,
-					'flex_width'    => isset( $custom_logo_args[0]['flex-width'] ) ? $custom_logo_args[0]['flex-width'] : null,
+					'height'        => $custom_logo_args[0]['height'] ?? null,
+					'width'         => $custom_logo_args[0]['width'] ?? null,
+					'flex_height'   => $custom_logo_args[0]['flex-height'] ?? null,
+					'flex_width'    => $custom_logo_args[0]['flex-width'] ?? null,
 					'button_labels' => array(
 						'select'       => __( 'Select logo' ),
 						'change'       => __( 'Change logo' ),
diff --git a/wp-includes/class-wp-http-requests-response.php b/wp-includes/class-wp-http-requests-response.php
index 8032c54d87..c27a3053f2 100644
--- a/wp-includes/class-wp-http-requests-response.php
+++ b/wp-includes/class-wp-http-requests-response.php
@@ -164,10 +164,10 @@ class WP_HTTP_Requests_Response extends WP_HTTP_Response {
 				array(
 					'name'      => $cookie->name,
 					'value'     => urldecode( $cookie->value ),
-					'expires'   => isset( $cookie->attributes['expires'] ) ? $cookie->attributes['expires'] : null,
-					'path'      => isset( $cookie->attributes['path'] ) ? $cookie->attributes['path'] : null,
-					'domain'    => isset( $cookie->attributes['domain'] ) ? $cookie->attributes['domain'] : null,
-					'host_only' => isset( $cookie->flags['host-only'] ) ? $cookie->flags['host-only'] : null,
+					'expires'   => $cookie->attributes['expires'] ?? null,
+					'path'      => $cookie->attributes['path'] ?? null,
+					'domain'    => $cookie->attributes['domain'] ?? null,
+					'host_only' => $cookie->flags['host-only'] ?? null,
 				)
 			);
 		}
diff --git a/wp-includes/class-wp-network-query.php b/wp-includes/class-wp-network-query.php
index 2ad05435a8..15600998ad 100644
--- a/wp-includes/class-wp-network-query.php
+++ b/wp-includes/class-wp-network-query.php
@@ -460,12 +460,12 @@ class WP_Network_Query {
 		 */
 		$clauses = apply_filters_ref_array( 'networks_clauses', array( compact( $pieces ), &$this ) );

-		$fields  = isset( $clauses['fields'] ) ? $clauses['fields'] : '';
-		$join    = isset( $clauses['join'] ) ? $clauses['join'] : '';
-		$where   = isset( $clauses['where'] ) ? $clauses['where'] : '';
-		$orderby = isset( $clauses['orderby'] ) ? $clauses['orderby'] : '';
-		$limits  = isset( $clauses['limits'] ) ? $clauses['limits'] : '';
-		$groupby = isset( $clauses['groupby'] ) ? $clauses['groupby'] : '';
+		$fields  = $clauses['fields'] ?? '';
+		$join    = $clauses['join'] ?? '';
+		$where   = $clauses['where'] ?? '';
+		$orderby = $clauses['orderby'] ?? '';
+		$limits  = $clauses['limits'] ?? '';
+		$groupby = $clauses['groupby'] ?? '';

 		if ( $where ) {
 			$where = 'WHERE ' . $where;
diff --git a/wp-includes/class-wp-query.php b/wp-includes/class-wp-query.php
index d29c5a4375..3268351e99 100644
--- a/wp-includes/class-wp-query.php
+++ b/wp-includes/class-wp-query.php
@@ -3019,13 +3019,13 @@ class WP_Query {
 			 */
 			$clauses = (array) apply_filters_ref_array( 'posts_clauses', array( compact( $pieces ), &$this ) );

-			$where    = isset( $clauses['where'] ) ? $clauses['where'] : '';
-			$groupby  = isset( $clauses['groupby'] ) ? $clauses['groupby'] : '';
-			$join     = isset( $clauses['join'] ) ? $clauses['join'] : '';
-			$orderby  = isset( $clauses['orderby'] ) ? $clauses['orderby'] : '';
-			$distinct = isset( $clauses['distinct'] ) ? $clauses['distinct'] : '';
-			$fields   = isset( $clauses['fields'] ) ? $clauses['fields'] : '';
-			$limits   = isset( $clauses['limits'] ) ? $clauses['limits'] : '';
+			$where    = $clauses['where'] ?? '';
+			$groupby  = $clauses['groupby'] ?? '';
+			$join     = $clauses['join'] ?? '';
+			$orderby  = $clauses['orderby'] ?? '';
+			$distinct = $clauses['distinct'] ?? '';
+			$fields   = $clauses['fields'] ?? '';
+			$limits   = $clauses['limits'] ?? '';
 		}

 		/**
@@ -3153,13 +3153,13 @@ class WP_Query {
 			 */
 			$clauses = (array) apply_filters_ref_array( 'posts_clauses_request', array( compact( $pieces ), &$this ) );

-			$where    = isset( $clauses['where'] ) ? $clauses['where'] : '';
-			$groupby  = isset( $clauses['groupby'] ) ? $clauses['groupby'] : '';
-			$join     = isset( $clauses['join'] ) ? $clauses['join'] : '';
-			$orderby  = isset( $clauses['orderby'] ) ? $clauses['orderby'] : '';
-			$distinct = isset( $clauses['distinct'] ) ? $clauses['distinct'] : '';
-			$fields   = isset( $clauses['fields'] ) ? $clauses['fields'] : '';
-			$limits   = isset( $clauses['limits'] ) ? $clauses['limits'] : '';
+			$where    = $clauses['where'] ?? '';
+			$groupby  = $clauses['groupby'] ?? '';
+			$join     = $clauses['join'] ?? '';
+			$orderby  = $clauses['orderby'] ?? '';
+			$distinct = $clauses['distinct'] ?? '';
+			$fields   = $clauses['fields'] ?? '';
+			$limits   = $clauses['limits'] ?? '';
 		}

 		if ( ! empty( $groupby ) ) {
diff --git a/wp-includes/class-wp-site-query.php b/wp-includes/class-wp-site-query.php
index d89be17504..52ae228d90 100644
--- a/wp-includes/class-wp-site-query.php
+++ b/wp-includes/class-wp-site-query.php
@@ -674,12 +674,12 @@ class WP_Site_Query {
 		 */
 		$clauses = apply_filters_ref_array( 'sites_clauses', array( compact( $pieces ), &$this ) );

-		$fields  = isset( $clauses['fields'] ) ? $clauses['fields'] : '';
-		$join    = isset( $clauses['join'] ) ? $clauses['join'] : '';
-		$where   = isset( $clauses['where'] ) ? $clauses['where'] : '';
-		$orderby = isset( $clauses['orderby'] ) ? $clauses['orderby'] : '';
-		$limits  = isset( $clauses['limits'] ) ? $clauses['limits'] : '';
-		$groupby = isset( $clauses['groupby'] ) ? $clauses['groupby'] : '';
+		$fields  = $clauses['fields'] ?? '';
+		$join    = $clauses['join'] ?? '';
+		$where   = $clauses['where'] ?? '';
+		$orderby = $clauses['orderby'] ?? '';
+		$limits  = $clauses['limits'] ?? '';
+		$groupby = $clauses['groupby'] ?? '';

 		if ( $where ) {
 			$where = 'WHERE ' . $where;
diff --git a/wp-includes/class-wp-term-query.php b/wp-includes/class-wp-term-query.php
index 9c308f3dc7..a30d887aa5 100644
--- a/wp-includes/class-wp-term-query.php
+++ b/wp-includes/class-wp-term-query.php
@@ -727,13 +727,13 @@ class WP_Term_Query {
 		 */
 		$clauses = apply_filters( 'terms_clauses', compact( $pieces ), $taxonomies, $args );

-		$fields   = isset( $clauses['fields'] ) ? $clauses['fields'] : '';
-		$join     = isset( $clauses['join'] ) ? $clauses['join'] : '';
-		$where    = isset( $clauses['where'] ) ? $clauses['where'] : '';
-		$distinct = isset( $clauses['distinct'] ) ? $clauses['distinct'] : '';
-		$orderby  = isset( $clauses['orderby'] ) ? $clauses['orderby'] : '';
-		$order    = isset( $clauses['order'] ) ? $clauses['order'] : '';
-		$limits   = isset( $clauses['limits'] ) ? $clauses['limits'] : '';
+		$fields   = $clauses['fields'] ?? '';
+		$join     = $clauses['join'] ?? '';
+		$where    = $clauses['where'] ?? '';
+		$distinct = $clauses['distinct'] ?? '';
+		$orderby  = $clauses['orderby'] ?? '';
+		$order    = $clauses['order'] ?? '';
+		$limits   = $clauses['limits'] ?? '';

 		$fields_is_filtered = implode( ', ', $selects ) !== $fields;

diff --git a/wp-includes/version.php b/wp-includes/version.php
index ed10496dbd..0856da5843 100644
--- a/wp-includes/version.php
+++ b/wp-includes/version.php
@@ -16,7 +16,7 @@
  *
  * @global string $wp_version
  */
-$wp_version = '7.0-alpha-61402';
+$wp_version = '7.0-alpha-61403';

 /**
  * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.