Commit 661996a40f for wordpress.org
commit 661996a40fc52f8a9318537ce8ded36f3842fa7c
Author: Weston Ruter <weston@xwp.co>
Date: Mon Jan 5 05:33:32 2026 +0000
Code Modernization: Widgets: Use null coalescing operator instead of `isset()` ternaries.
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 [61431], [61430], [61429], [61424], [61404], [61403].
Props costdev, westonruter.
See #58874, #63430.
Built from https://develop.svn.wordpress.org/trunk@61432
git-svn-id: http://core.svn.wordpress.org/trunk@60744 1a063a9b-81f0-0310-95a4-ce76da25c4cd
diff --git a/wp-admin/includes/widgets.php b/wp-admin/includes/widgets.php
index 20cb5e159f..d4a370a1a3 100644
--- a/wp-admin/includes/widgets.php
+++ b/wp-admin/includes/widgets.php
@@ -137,7 +137,7 @@ function wp_list_widget_controls_dynamic_sidebar( $params ) {
++$i;
$widget_id = $params[0]['widget_id'];
- $id = isset( $params[0]['_temp_id'] ) ? $params[0]['_temp_id'] : $widget_id;
+ $id = $params[0]['_temp_id'] ?? $widget_id;
$hidden = isset( $params[0]['_hide'] ) ? ' style="display:none;"' : '';
$params[0]['before_widget'] = "<div id='widget-{$i}_{$id}' class='widget'$hidden>";
@@ -191,23 +191,23 @@ function wp_widget_control( $sidebar_args ) {
global $wp_registered_widgets, $wp_registered_widget_controls, $sidebars_widgets;
$widget_id = $sidebar_args['widget_id'];
- $sidebar_id = isset( $sidebar_args['id'] ) ? $sidebar_args['id'] : false;
+ $sidebar_id = $sidebar_args['id'] ?? false;
$key = $sidebar_id ? array_search( $widget_id, $sidebars_widgets[ $sidebar_id ], true ) : '-1'; // Position of widget in sidebar.
- $control = isset( $wp_registered_widget_controls[ $widget_id ] ) ? $wp_registered_widget_controls[ $widget_id ] : array();
+ $control = $wp_registered_widget_controls[ $widget_id ] ?? array();
$widget = $wp_registered_widgets[ $widget_id ];
$id_format = $widget['id'];
- $widget_number = isset( $control['params'][0]['number'] ) ? $control['params'][0]['number'] : '';
- $id_base = isset( $control['id_base'] ) ? $control['id_base'] : $widget_id;
- $width = isset( $control['width'] ) ? $control['width'] : '';
- $height = isset( $control['height'] ) ? $control['height'] : '';
- $multi_number = isset( $sidebar_args['_multi_num'] ) ? $sidebar_args['_multi_num'] : '';
- $add_new = isset( $sidebar_args['_add'] ) ? $sidebar_args['_add'] : '';
-
- $before_form = isset( $sidebar_args['before_form'] ) ? $sidebar_args['before_form'] : '<form method="post">';
- $after_form = isset( $sidebar_args['after_form'] ) ? $sidebar_args['after_form'] : '</form>';
- $before_widget_content = isset( $sidebar_args['before_widget_content'] ) ? $sidebar_args['before_widget_content'] : '<div class="widget-content">';
- $after_widget_content = isset( $sidebar_args['after_widget_content'] ) ? $sidebar_args['after_widget_content'] : '</div>';
+ $widget_number = $control['params'][0]['number'] ?? '';
+ $id_base = $control['id_base'] ?? $widget_id;
+ $width = $control['width'] ?? '';
+ $height = $control['height'] ?? '';
+ $multi_number = $sidebar_args['_multi_num'] ?? '';
+ $add_new = $sidebar_args['_add'] ?? '';
+
+ $before_form = $sidebar_args['before_form'] ?? '<form method="post">';
+ $after_form = $sidebar_args['after_form'] ?? '</form>';
+ $before_widget_content = $sidebar_args['before_widget_content'] ?? '<div class="widget-content">';
+ $after_widget_content = $sidebar_args['after_widget_content'] ?? '</div>';
$query_arg = array( 'editwidget' => $widget['id'] );
if ( $add_new ) {
diff --git a/wp-admin/widgets-form.php b/wp-admin/widgets-form.php
index cde09ca47c..0f841d9043 100644
--- a/wp-admin/widgets-form.php
+++ b/wp-admin/widgets-form.php
@@ -139,7 +139,7 @@ if ( isset( $_POST['savewidget'] ) || isset( $_POST['removewidget'] ) ) {
$position = isset( $_POST[ $sidebar_id . '_position' ] ) ? (int) $_POST[ $sidebar_id . '_position' ] - 1 : 0;
$id_base = $_POST['id_base'];
- $sidebar = isset( $sidebars_widgets[ $sidebar_id ] ) ? $sidebars_widgets[ $sidebar_id ] : array();
+ $sidebar = $sidebars_widgets[ $sidebar_id ] ?? array();
// Delete.
if ( isset( $_POST['removewidget'] ) && $_POST['removewidget'] ) {
@@ -261,14 +261,14 @@ if ( isset( $_GET['editwidget'] ) && $_GET['editwidget'] ) {
}
if ( ! isset( $sidebar ) ) {
- $sidebar = isset( $_GET['sidebar'] ) ? $_GET['sidebar'] : 'wp_inactive_widgets';
+ $sidebar = $_GET['sidebar'] ?? 'wp_inactive_widgets';
}
if ( ! isset( $multi_number ) ) {
- $multi_number = isset( $control['params'][0]['number'] ) ? $control['params'][0]['number'] : '';
+ $multi_number = $control['params'][0]['number'] ?? '';
}
- $id_base = isset( $control['id_base'] ) ? $control['id_base'] : $control['id'];
+ $id_base = $control['id_base'] ?? $control['id'];
// Show the widget form.
$width = ' style="width:' . max( $control['width'], 350 ) . 'px"';
diff --git a/wp-includes/class-wp-widget.php b/wp-includes/class-wp-widget.php
index 4773f4b7fa..e72b2798cb 100644
--- a/wp-includes/class-wp-widget.php
+++ b/wp-includes/class-wp-widget.php
@@ -447,7 +447,7 @@ class WP_Widget {
$new_instance = stripslashes_deep( $new_instance );
$this->_set( $number );
- $old_instance = isset( $all_instances[ $number ] ) ? $all_instances[ $number ] : array();
+ $old_instance = $all_instances[ $number ] ?? array();
$was_cache_addition_suspended = wp_suspend_cache_addition();
if ( $this->is_preview() && ! $was_cache_addition_suspended ) {
diff --git a/wp-includes/version.php b/wp-includes/version.php
index 0a895c8816..9bb766580a 100644
--- a/wp-includes/version.php
+++ b/wp-includes/version.php
@@ -16,7 +16,7 @@
*
* @global string $wp_version
*/
-$wp_version = '7.0-alpha-61431';
+$wp_version = '7.0-alpha-61432';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
diff --git a/wp-includes/widgets.php b/wp-includes/widgets.php
index 5bf9d16b31..6b216c2d3c 100644
--- a/wp-includes/widgets.php
+++ b/wp-includes/widgets.php
@@ -190,7 +190,7 @@ function register_sidebars( $number = 1, $args = array() ) {
$_args['name'] = sprintf( __( 'Sidebar %d' ), $i );
}
} else {
- $_args['name'] = isset( $args['name'] ) ? $args['name'] : __( 'Sidebar' );
+ $_args['name'] = $args['name'] ?? __( 'Sidebar' );
}
/*
@@ -1495,7 +1495,7 @@ function wp_map_sidebars_widgets( $existing_sidebars_widgets ) {
// Sidebars_widgets settings from when this theme was previously active.
$old_sidebars_widgets = get_theme_mod( 'sidebars_widgets' );
- $old_sidebars_widgets = isset( $old_sidebars_widgets['data'] ) ? $old_sidebars_widgets['data'] : false;
+ $old_sidebars_widgets = $old_sidebars_widgets['data'] ?? false;
if ( is_array( $old_sidebars_widgets ) ) {
@@ -1718,8 +1718,8 @@ function wp_widget_rss_form( $args, $inputs = null ) {
);
$inputs = wp_parse_args( $inputs, $default_inputs );
- $args['title'] = isset( $args['title'] ) ? $args['title'] : '';
- $args['url'] = isset( $args['url'] ) ? $args['url'] : '';
+ $args['title'] = $args['title'] ?? '';
+ $args['url'] = $args['url'] ?? '';
$args['items'] = isset( $args['items'] ) ? (int) $args['items'] : 0;
if ( $args['items'] < 1 || 20 < $args['items'] ) {
diff --git a/wp-includes/widgets/class-wp-nav-menu-widget.php b/wp-includes/widgets/class-wp-nav-menu-widget.php
index 731e5bd7dd..9cdc0a32bf 100644
--- a/wp-includes/widgets/class-wp-nav-menu-widget.php
+++ b/wp-includes/widgets/class-wp-nav-menu-widget.php
@@ -143,8 +143,8 @@ class WP_Nav_Menu_Widget extends WP_Widget {
*/
public function form( $instance ) {
global $wp_customize;
- $title = isset( $instance['title'] ) ? $instance['title'] : '';
- $nav_menu = isset( $instance['nav_menu'] ) ? $instance['nav_menu'] : '';
+ $title = $instance['title'] ?? '';
+ $nav_menu = $instance['nav_menu'] ?? '';
// Get menus.
$menus = wp_get_nav_menus();
diff --git a/wp-includes/widgets/class-wp-widget-custom-html.php b/wp-includes/widgets/class-wp-widget-custom-html.php
index bdae2dd38e..4cb17ad365 100644
--- a/wp-includes/widgets/class-wp-widget-custom-html.php
+++ b/wp-includes/widgets/class-wp-widget-custom-html.php
@@ -139,7 +139,7 @@ class WP_Widget_Custom_HTML extends WP_Widget {
$simulated_text_widget_instance = array_merge(
$instance,
array(
- 'text' => isset( $instance['content'] ) ? $instance['content'] : '',
+ 'text' => $instance['content'] ?? '',
'filter' => false, // Because wpautop is not applied.
'visual' => false, // Because it wasn't created in TinyMCE.
)
diff --git a/wp-includes/widgets/class-wp-widget-links.php b/wp-includes/widgets/class-wp-widget-links.php
index 58ae2a7919..6e9c3e5694 100644
--- a/wp-includes/widgets/class-wp-widget-links.php
+++ b/wp-includes/widgets/class-wp-widget-links.php
@@ -39,14 +39,14 @@ class WP_Widget_Links extends WP_Widget {
* @param array $instance Settings for the current Links widget instance.
*/
public function widget( $args, $instance ) {
- $show_description = isset( $instance['description'] ) ? $instance['description'] : false;
- $show_name = isset( $instance['name'] ) ? $instance['name'] : false;
- $show_rating = isset( $instance['rating'] ) ? $instance['rating'] : false;
- $show_images = isset( $instance['images'] ) ? $instance['images'] : true;
- $category = isset( $instance['category'] ) ? $instance['category'] : false;
- $orderby = isset( $instance['orderby'] ) ? $instance['orderby'] : 'name';
+ $show_description = $instance['description'] ?? false;
+ $show_name = $instance['name'] ?? false;
+ $show_rating = $instance['rating'] ?? false;
+ $show_images = $instance['images'] ?? true;
+ $category = $instance['category'] ?? false;
+ $orderby = $instance['orderby'] ?? 'name';
$order = 'rating' === $orderby ? 'DESC' : 'ASC';
- $limit = isset( $instance['limit'] ) ? $instance['limit'] : -1;
+ $limit = $instance['limit'] ?? -1;
$before_widget = preg_replace( '/ id="[^"]*"/', ' id="%id"', $args['before_widget'] );
diff --git a/wp-includes/widgets/class-wp-widget-recent-comments.php b/wp-includes/widgets/class-wp-widget-recent-comments.php
index d9afa78a7c..246eac6cf9 100644
--- a/wp-includes/widgets/class-wp-widget-recent-comments.php
+++ b/wp-includes/widgets/class-wp-widget-recent-comments.php
@@ -185,7 +185,7 @@ class WP_Widget_Recent_Comments extends WP_Widget {
* @param array $instance Current settings.
*/
public function form( $instance ) {
- $title = isset( $instance['title'] ) ? $instance['title'] : '';
+ $title = $instance['title'] ?? '';
$number = isset( $instance['number'] ) ? absint( $instance['number'] ) : 5;
?>
<p>
diff --git a/wp-includes/widgets/class-wp-widget-recent-posts.php b/wp-includes/widgets/class-wp-widget-recent-posts.php
index c73bb5b0bc..c9c4a266a5 100644
--- a/wp-includes/widgets/class-wp-widget-recent-posts.php
+++ b/wp-includes/widgets/class-wp-widget-recent-posts.php
@@ -56,7 +56,7 @@ class WP_Widget_Recent_Posts extends WP_Widget {
if ( ! $number ) {
$number = 5;
}
- $show_date = isset( $instance['show_date'] ) ? $instance['show_date'] : false;
+ $show_date = $instance['show_date'] ?? false;
$r = new WP_Query(
/**