Skip to content

Repair wp/5.6 branch Actions: Handle a missing widget name when saving a widget in the widgets REST controller - #84978

Open
desrosj wants to merge 1 commit into
fix-actions-5.6/skip-empty-rss-widget-render-in-widgets-testfrom
fix-actions-5.6/fix-widgets-controller-missing-name
Open

desrosj wants to merge 1 commit into
fix-actions-5.6/skip-empty-rss-widget-render-in-widgets-testfrom
fix-actions-5.6/fix-widgets-controller-missing-name

Conversation

@desrosj

@desrosj desrosj commented Oct 16, 2026 •

Copy link
Copy Markdown
Member

Part of #82937.

What?

In WP_REST_Widgets_Controller::save_widget(), passes null as the widget name when the request has no name, instead of reading $input_widget['name'] unconditionally.

Why?

The request doesn't have to include name. On PHP 8 the missing key is a warning, so three REST_Widgets_Controller_Test tests (test_create_item, test_create_item_multiple_in_a_row and test_update_item_shouldnt_require_id_base) fail on the PHP 8.0 jobs of #84977, directly below:

Undefined array key "name"

These endpoints first shipped in WordPress 5.8. On this branch they exist only as plugin code in lib/, which isn't in any npm package and never reaches a WordPress 5.6 release. A small change here keeps the tests green, so security fixes for the packages WordPress 5.6 does ship can be verified reliably.

How?

The isset() ternary passes the same null PHP 7 already passed, so behavior is unchanged. It's used instead of ?? because this file also loads on PHP 5.6. Later versions of this controller were rewritten, so there's no upstream fix to port. This is the same change as #84794 on wp/5.7: this branch's lib/class-wp-rest-widgets-controller.php is identical to wp/5.7's before that PR.

Use of AI Tools

This PR was created by Claude Code under my supervision. All code should be treated as AI-produced and not yet reviewed by a human until this PR is marked Ready for Review.

🤖 Generated with Claude Code

@desrosj desrosj added the [Type] Build Tooling Issues or PRs related to build tooling label Oct 16, 2026
@desrosj desrosj self-assigned this Oct 16, 2026
@coderabbitai

coderabbitai Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 701b0bc9-71b8-4626-b43b-ac739fdfd535

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

Size Change: 0 B

Total Size: 1.2 MB

ℹ️ View Unchanged
Filename Size
build/a11y/index.js 1.14 kB
build/annotations/index.js 3.52 kB
build/api-fetch/index.js 3.33 kB
build/autop/index.js 2.75 kB
build/blob/index.js 670 B
build/block-directory/index.js 8.6 kB
build/block-directory/style-rtl.css 932 B
build/block-directory/style.css 933 B
build/block-editor/index.js 130 kB
build/block-editor/style-rtl.css 11 kB
build/block-editor/style.css 11 kB
build/block-library/editor-rtl.css 8.95 kB
build/block-library/editor.css 8.95 kB
build/block-library/index.js 144 kB
build/block-library/style-rtl.css 7.71 kB
build/block-library/style.css 7.7 kB
build/block-library/theme-rtl.css 737 B
build/block-library/theme.css 738 B
build/block-serialization-default-parser/index.js 1.78 kB
build/block-serialization-spec-parser/index.js 3.1 kB
build/blocks/index.js 47.8 kB
build/components/index.js 171 kB
build/components/style-rtl.css 15.4 kB
build/components/style.css 15.3 kB
build/compose/index.js 9.63 kB
build/core-data/index.js 12.1 kB
build/data-controls/index.js 681 B
build/data/index.js 8.6 kB
build/date/index.js 32.1 kB
build/deprecated/index.js 775 B
build/dom-ready/index.js 569 B
build/dom/index.js 4.54 kB
build/edit-navigation/index.js 10.6 kB
build/edit-navigation/style-rtl.css 868 B
build/edit-navigation/style.css 867 B
build/edit-post/index.js 306 kB
build/edit-post/style-rtl.css 6.38 kB
build/edit-post/style.css 6.37 kB
build/edit-site/index.js 21.7 kB
build/edit-site/style-rtl.css 3.81 kB
build/edit-site/style.css 3.82 kB
build/edit-widgets/index.js 26.7 kB
build/edit-widgets/style-rtl.css 3.09 kB
build/edit-widgets/style.css 3.09 kB
build/editor/editor-styles-rtl.css 483 B
build/editor/editor-styles.css 484 B
build/editor/index.js 42.8 kB
build/editor/style-rtl.css 3.82 kB
build/editor/style.css 3.82 kB
build/element/index.js 4.44 kB
build/escape-html/index.js 734 B
build/format-library/index.js 7.52 kB
build/format-library/style-rtl.css 548 B
build/format-library/style.css 549 B
build/hooks/index.js 1.75 kB
build/html-entities/index.js 623 B
build/i18n/index.js 3.55 kB
build/is-shallow-equal/index.js 712 B
build/keyboard-shortcuts/index.js 2.38 kB
build/keycodes/index.js 1.85 kB
build/list-reusable-blocks/index.js 3 kB
build/list-reusable-blocks/style-rtl.css 473 B
build/list-reusable-blocks/style.css 473 B
build/media-utils/index.js 5.13 kB
build/notices/index.js 1.69 kB
build/nux/index.js 3.26 kB
build/nux/style-rtl.css 672 B
build/nux/style.css 669 B
build/plugins/index.js 2.44 kB
build/primitives/index.js 1.35 kB
build/priority-queue/index.js 788 B
build/redux-routine/index.js 2.85 kB
build/reusable-blocks/index.js 3.06 kB
build/rich-text/index.js 13.2 kB
build/server-side-render/index.js 2.59 kB
build/shortcode/index.js 1.71 kB
build/token-list/index.js 1.23 kB
build/url/index.js 4.07 kB
build/viewport/index.js 1.74 kB
build/warning/index.js 1.13 kB
build/wordcount/index.js 1.23 kB

compressed-size-action

@desrosj
desrosj marked this pull request as ready for review October 16, 2026 18:07
@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

If you're merging code through a pull request on GitHub, copy and paste the following into the bottom of the merge commit message.

Co-authored-by: desrosj <desrosj@git.wordpress.org>
Co-authored-by: ntsekouras <ntsekouras@git.wordpress.org>

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

@ntsekouras ntsekouras left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks! The three widget tests no longer fail on PHP 8.0, and all PHP jobs pass here.

@desrosj
desrosj force-pushed the fix-actions-5.6/fix-widgets-controller-missing-name branch from 44c099e to 7457886 Compare October 23, 2026 14:12

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

[Type] Build Tooling Issues or PRs related to build tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants