Commit 4cbb4971f2 for wordpress.org
commit 4cbb4971f252b8bd3afef41d2782084e8bf32476
Author: Weston Ruter <weston@xwp.co>
Date: Fri Jan 9 04:28:52 2026 +0000
Code Modernization: Use null coalescing operator instead of `isset()` ternaries in remaining core files.
Developed as a subset of https://github.com/WordPress/wordpress-develop/pull/10654
Initially developed in https://github.com/WordPress/wordpress-develop/pull/4886
Follow-up to [61456], [61455], [61454], [61453], [61445], [61444], [61443], [61442], [61436], [61435], [61434], [61403], [61433], [61432], [61431], [61430], [61429], [61424], [61404], [61403].
Props costdev, westonruter, jrf, SergeyBiryukov, swissspidy, hellofromTonya, marybaum, oglekler, dmsnell, chaion07, noisysocks, mukesh27.
See #63430.
Fixes #58874.
Built from https://develop.svn.wordpress.org/trunk@61457
git-svn-id: http://core.svn.wordpress.org/trunk@60769 1a063a9b-81f0-0310-95a4-ce76da25c4cd
diff --git a/wp-includes/IXR/class-IXR-client.php b/wp-includes/IXR/class-IXR-client.php
index 2072f7c9c2..34c1f9337c 100644
--- a/wp-includes/IXR/class-IXR-client.php
+++ b/wp-includes/IXR/class-IXR-client.php
@@ -31,8 +31,8 @@ class IXR_Client
// Assume we have been given a URL instead
$bits = parse_url($server);
$this->server = $bits['host'];
- $this->port = isset($bits['port']) ? $bits['port'] : 80;
- $this->path = isset($bits['path']) ? $bits['path'] : '/';
+ $this->port = $bits['port'] ?? 80;
+ $this->path = $bits['path'] ?? '/';
// Make absolutely sure we have a path
if (!$this->path) {
diff --git a/wp-includes/class-wp-duotone.php b/wp-includes/class-wp-duotone.php
index 7c7416b439..69b56e090c 100644
--- a/wp-includes/class-wp-duotone.php
+++ b/wp-includes/class-wp-duotone.php
@@ -209,7 +209,7 @@ class WP_Duotone {
'rad' => 360 / ( M_PI * 2 ),
);
- $factor = isset( $angle_units[ $unit ] ) ? $angle_units[ $unit ] : 1;
+ $factor = $angle_units[ $unit ] ?? 1;
return (float) $value * $factor;
}
@@ -972,9 +972,7 @@ class WP_Duotone {
* If the experimental duotone support was set, that value is to be
* treated as a selector and requires scoping.
*/
- $experimental_duotone = isset( $block_type->supports['color']['__experimentalDuotone'] )
- ? $block_type->supports['color']['__experimentalDuotone']
- : false;
+ $experimental_duotone = $block_type->supports['color']['__experimentalDuotone'] ?? false;
if ( $experimental_duotone ) {
$root_selector = wp_get_block_css_selector( $block_type );
return is_string( $experimental_duotone )
@@ -1003,7 +1001,7 @@ class WP_Duotone {
}
// Get the per block settings from the theme.json.
$tree = wp_get_global_settings();
- $presets_by_origin = isset( $tree['color']['duotone'] ) ? $tree['color']['duotone'] : array();
+ $presets_by_origin = $tree['color']['duotone'] ?? array();
self::$global_styles_presets = array();
foreach ( $presets_by_origin as $presets ) {
@@ -1304,9 +1302,7 @@ class WP_Duotone {
* @return array Filtered block type settings.
*/
public static function migrate_experimental_duotone_support_flag( $settings, $metadata ) {
- $duotone_support = isset( $metadata['supports']['color']['__experimentalDuotone'] )
- ? $metadata['supports']['color']['__experimentalDuotone']
- : null;
+ $duotone_support = $metadata['supports']['color']['__experimentalDuotone'] ?? null;
if ( ! isset( $settings['supports']['filter']['duotone'] ) && null !== $duotone_support ) {
_wp_array_set( $settings, array( 'supports', 'filter', 'duotone' ), (bool) $duotone_support );
diff --git a/wp-includes/class-wp-hook.php b/wp-includes/class-wp-hook.php
index 0740d52ac1..cd6860c0f8 100644
--- a/wp-includes/class-wp-hook.php
+++ b/wp-includes/class-wp-hook.php
@@ -492,7 +492,7 @@ final class WP_Hook implements Iterator, ArrayAccess {
*/
#[ReturnTypeWillChange]
public function offsetGet( $offset ) {
- return isset( $this->callbacks[ $offset ] ) ? $this->callbacks[ $offset ] : null;
+ return $this->callbacks[ $offset ] ?? null;
}
/**
diff --git a/wp-includes/class-wp-theme.php b/wp-includes/class-wp-theme.php
index 613011ec3c..a6966351f1 100644
--- a/wp-includes/class-wp-theme.php
+++ b/wp-includes/class-wp-theme.php
@@ -515,7 +515,7 @@ final class WP_Theme implements ArrayAccess {
return;
}
// Set the parent. Pass the current instance so we can do the checks above and assess errors.
- $this->parent = new WP_Theme( $this->template, isset( $theme_root_template ) ? $theme_root_template : $this->theme_root, $this );
+ $this->parent = new WP_Theme( $this->template, $theme_root_template ?? $this->theme_root, $this );
}
if ( wp_paused_themes()->get( $this->stylesheet ) && ( ! is_wp_error( $this->errors ) || ! isset( $this->errors->errors['theme_paused'] ) ) ) {
@@ -776,7 +776,7 @@ final class WP_Theme implements ArrayAccess {
* @return WP_Theme|false Parent theme, or false if the active theme is not a child theme.
*/
public function parent() {
- return isset( $this->parent ) ? $this->parent : false;
+ return $this->parent ?? false;
}
/**
@@ -1397,7 +1397,7 @@ final class WP_Theme implements ArrayAccess {
}
$post_templates = $this->get_post_templates();
- $post_templates = isset( $post_templates[ $post_type ] ) ? $post_templates[ $post_type ] : array();
+ $post_templates = $post_templates[ $post_type ] ?? array();
/**
* Filters list of page templates for a theme.
diff --git a/wp-includes/css/dist/index.php b/wp-includes/css/dist/index.php
index cbe2453188..6b3526d4d0 100644
--- a/wp-includes/css/dist/index.php
+++ b/wp-includes/css/dist/index.php
@@ -8,13 +8,13 @@
return array(
array(
- 'handle' => 'wp-nux',
- 'path' => 'nux/style',
+ 'handle' => 'wp-list-reusable-blocks',
+ 'path' => 'list-reusable-blocks/style',
'dependencies' => array('wp-components'),
),
array(
- 'handle' => 'wp-list-reusable-blocks',
- 'path' => 'list-reusable-blocks/style',
+ 'handle' => 'wp-nux',
+ 'path' => 'nux/style',
'dependencies' => array('wp-components'),
),
array(
@@ -22,14 +22,19 @@ return array(
'path' => 'preferences/style',
'dependencies' => array('wp-components'),
),
+ array(
+ 'handle' => 'wp-reusable-blocks',
+ 'path' => 'reusable-blocks/style',
+ 'dependencies' => array('wp-block-editor', 'wp-components'),
+ ),
array(
'handle' => 'wp-commands',
'path' => 'commands/style',
'dependencies' => array('wp-components'),
),
array(
- 'handle' => 'wp-reusable-blocks',
- 'path' => 'reusable-blocks/style',
+ 'handle' => 'wp-patterns',
+ 'path' => 'patterns/style',
'dependencies' => array('wp-block-editor', 'wp-components'),
),
array(
@@ -42,59 +47,54 @@ return array(
'path' => 'components/style',
'dependencies' => array(),
),
- array(
- 'handle' => 'wp-patterns',
- 'path' => 'patterns/style',
- 'dependencies' => array('wp-block-editor', 'wp-components'),
- ),
array(
'handle' => 'wp-format-library',
'path' => 'format-library/style',
'dependencies' => array('wp-block-editor', 'wp-components'),
),
- array(
- 'handle' => 'wp-block-directory',
- 'path' => 'block-directory/style',
- 'dependencies' => array('wp-block-editor', 'wp-components', 'wp-editor'),
- ),
array(
'handle' => 'wp-media-utils',
'path' => 'media-utils/style',
'dependencies' => array('wp-components'),
),
array(
- 'handle' => 'wp-edit-widgets',
- 'path' => 'edit-widgets/style',
- 'dependencies' => array('wp-block-editor', 'wp-block-library', 'wp-components', 'wp-media-utils', 'wp-patterns', 'wp-preferences', 'wp-widgets'),
+ 'handle' => 'wp-block-directory',
+ 'path' => 'block-directory/style',
+ 'dependencies' => array('wp-block-editor', 'wp-components', 'wp-editor'),
),
array(
'handle' => 'wp-customize-widgets',
'path' => 'customize-widgets/style',
'dependencies' => array('wp-block-editor', 'wp-block-library', 'wp-components', 'wp-media-utils', 'wp-preferences', 'wp-widgets'),
),
- array(
- 'handle' => 'wp-edit-post',
- 'path' => 'edit-post/style',
- 'dependencies' => array('wp-block-editor', 'wp-block-library', 'wp-commands', 'wp-components', 'wp-editor', 'wp-preferences', 'wp-widgets'),
- ),
array(
'handle' => 'wp-block-library',
'path' => 'block-library/style',
'dependencies' => array('wp-block-editor', 'wp-components', 'wp-patterns'),
),
+ array(
+ 'handle' => 'wp-edit-widgets',
+ 'path' => 'edit-widgets/style',
+ 'dependencies' => array('wp-block-editor', 'wp-block-library', 'wp-components', 'wp-media-utils', 'wp-patterns', 'wp-preferences', 'wp-widgets'),
+ ),
+ array(
+ 'handle' => 'wp-edit-post',
+ 'path' => 'edit-post/style',
+ 'dependencies' => array('wp-block-editor', 'wp-block-library', 'wp-commands', 'wp-components', 'wp-editor', 'wp-preferences', 'wp-widgets'),
+ ),
array(
'handle' => 'wp-editor',
'path' => 'editor/style',
'dependencies' => array('wp-block-editor', 'wp-commands', 'wp-components', 'wp-media-utils', 'wp-patterns', 'wp-preferences'),
),
- array(
- 'handle' => 'wp-edit-site',
- 'path' => 'edit-site/style',
- 'dependencies' => array('wp-block-editor', 'wp-block-library', 'wp-commands', 'wp-components', 'wp-editor', 'wp-patterns', 'wp-preferences', 'wp-widgets'),
- ),
array(
'handle' => 'wp-block-editor',
'path' => 'block-editor/style',
'dependencies' => array('wp-commands', 'wp-components', 'wp-preferences'),
),
+ array(
+ 'handle' => 'wp-edit-site',
+ 'path' => 'edit-site/style',
+ 'dependencies' => array('wp-block-editor', 'wp-block-library', 'wp-commands', 'wp-components', 'wp-editor', 'wp-patterns', 'wp-preferences', 'wp-widgets'),
+ ),
);
diff --git a/wp-includes/deprecated.php b/wp-includes/deprecated.php
index 0b72171512..19ccaf7e6d 100644
--- a/wp-includes/deprecated.php
+++ b/wp-includes/deprecated.php
@@ -4264,9 +4264,7 @@ function wp_render_duotone_filter_preset( $preset ) {
function wp_skip_border_serialization( $block_type ) {
_deprecated_function( __FUNCTION__, '6.0.0', 'wp_should_skip_block_supports_serialization()' );
- $border_support = isset( $block_type->supports['__experimentalBorder'] )
- ? $block_type->supports['__experimentalBorder']
- : false;
+ $border_support = $block_type->supports['__experimentalBorder'] ?? false;
return is_array( $border_support ) &&
array_key_exists( '__experimentalSkipSerialization', $border_support ) &&
@@ -4288,9 +4286,7 @@ function wp_skip_border_serialization( $block_type ) {
function wp_skip_dimensions_serialization( $block_type ) {
_deprecated_function( __FUNCTION__, '6.0.0', 'wp_should_skip_block_supports_serialization()' );
- $dimensions_support = isset( $block_type->supports['__experimentalDimensions'] )
- ? $block_type->supports['__experimentalDimensions']
- : false;
+ $dimensions_support = $block_type->supports['__experimentalDimensions'] ?? false;
return is_array( $dimensions_support ) &&
array_key_exists( '__experimentalSkipSerialization', $dimensions_support ) &&
@@ -4312,9 +4308,7 @@ function wp_skip_dimensions_serialization( $block_type ) {
function wp_skip_spacing_serialization( $block_type ) {
_deprecated_function( __FUNCTION__, '6.0.0', 'wp_should_skip_block_supports_serialization()' );
- $spacing_support = isset( $block_type->supports['spacing'] )
- ? $block_type->supports['spacing']
- : false;
+ $spacing_support = $block_type->supports['spacing'] ?? false;
return is_array( $spacing_support ) &&
array_key_exists( '__experimentalSkipSerialization', $spacing_support ) &&
diff --git a/wp-includes/js/dist/script-modules/index.php b/wp-includes/js/dist/script-modules/index.php
index 825c1d5a64..d260d3a254 100644
--- a/wp-includes/js/dist/script-modules/index.php
+++ b/wp-includes/js/dist/script-modules/index.php
@@ -7,6 +7,11 @@
*/
return array(
+ array(
+ 'id' => '@wordpress/core-abilities',
+ 'path' => 'core-abilities/index',
+ 'asset' => 'core-abilities/index.min.asset.php',
+ ),
array(
'id' => '@wordpress/interactivity',
'path' => 'interactivity/index',
@@ -22,11 +27,6 @@ return array(
'path' => 'interactivity-router/full-page',
'asset' => 'interactivity-router/full-page.min.asset.php',
),
- array(
- 'id' => '@wordpress/core-abilities',
- 'path' => 'core-abilities/index',
- 'asset' => 'core-abilities/index.min.asset.php',
- ),
array(
'id' => '@wordpress/a11y',
'path' => 'a11y/index',
diff --git a/wp-includes/pluggable.php b/wp-includes/pluggable.php
index 99c23540d8..4241a8f184 100644
--- a/wp-includes/pluggable.php
+++ b/wp-includes/pluggable.php
@@ -1722,7 +1722,7 @@ if ( ! function_exists( 'wp_validate_redirect' ) ) :
* @param string[] $hosts An array of allowed host names.
* @param string $host The host name of the redirect destination; empty string if not set.
*/
- $allowed_hosts = (array) apply_filters( 'allowed_redirect_hosts', array( $wpp['host'] ), isset( $lp['host'] ) ? $lp['host'] : '' );
+ $allowed_hosts = (array) apply_filters( 'allowed_redirect_hosts', array( $wpp['host'] ), $lp['host'] ?? '' );
if ( isset( $lp['host'] ) && ( ! in_array( $lp['host'], $allowed_hosts, true ) && strtolower( $wpp['host'] ) !== $lp['host'] ) ) {
$location = $fallback_url;
diff --git a/wp-includes/theme.php b/wp-includes/theme.php
index e22e3c236f..4977972841 100644
--- a/wp-includes/theme.php
+++ b/wp-includes/theme.php
@@ -1104,7 +1104,7 @@ function get_theme_mod( $name, $default_value = false ) {
*/
function set_theme_mod( $name, $value ) {
$mods = get_theme_mods();
- $old_value = isset( $mods[ $name ] ) ? $mods[ $name ] : false;
+ $old_value = $mods[ $name ] ?? false;
/**
* Filters the theme modification, or 'theme_mod', value on save.
@@ -3428,7 +3428,7 @@ function get_registered_theme_feature( $feature ) {
return null;
}
- return isset( $_wp_registered_theme_features[ $feature ] ) ? $_wp_registered_theme_features[ $feature ] : null;
+ return $_wp_registered_theme_features[ $feature ] ?? null;
}
/**
diff --git a/wp-includes/version.php b/wp-includes/version.php
index eb05b21a50..2423f148b5 100644
--- a/wp-includes/version.php
+++ b/wp-includes/version.php
@@ -16,7 +16,7 @@
*
* @global string $wp_version
*/
-$wp_version = '7.0-alpha-61456';
+$wp_version = '7.0-alpha-61457';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.