WordPress/wp-admin
hellofromTonya f8b436bb20 Code Modernization: Fix 'ping_sites' non-nullable deprecation.
When saving options from the Settings page, include the `'ping_sites'` option in the allowed "writing" options list only when the `'blog_public'` option is `'1'`.

Fixes a PHP 8.1 and above "null to non-nullable" deprecation notice in `sanitize_option()` ([https://core.trac.wordpress.org/browser/trunk/src/wp-includes/formatting.php?annotate=blame#L4952 which happens when here] as part of [22255]):

{{{
Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in .../wp-includes/formatting.php
}}}

**Explanation**

[https://developer.wordpress.org/apis/options/#writing Per the documentation], the `ping_sites` option requires the `'blog_public'` option to have a value of `'1'` and must be a `string` data type. `null` is not valid for this option.

The relationship between the 2 options shows itself in the `options-writing.php` code ([https://core.trac.wordpress.org/browser/tags/6.5.4/src/wp-admin/options-writing.php#L233 shown here] and in [4326]), as the `textarea#ping_sites` only renders when `'1' === get_option( 'blog_public' )`.

**What happens if `'blog_public'` is not `'1'`?**

The `'ping_sites'` option will not be a field on the page. Upon saving:

* HTTP POST (`$_POST`) does not include `'ping_sites'`. 
* Before this commit:
   * The [https://core.trac.wordpress.org/browser/trunk/src/wp-admin/options.php#L333 option's value was set to] `null` before being passed to `update_option()`. 
   * `update_option()` invokes `sanitize_option()`.
   * A `null` value for the `'ping_sites'` case was passed to `explode()`, which threw a deprecation notice on PHP 8.1 and above.
* With this commit, the `'ping_sites'` option is no longer included in the allow list and thus will not be passed to `update_options()` > `sanitize_option()` > `explode()`.

Follow-up to [22255], [12825], [4326], [949].

Props kitchin, SergeyBiryukov, swissspidy, devmuhib, rajinsharwar, hellofromTonya.
Fixes #59818.
Built from https://develop.svn.wordpress.org/trunk@58425


git-svn-id: http://core.svn.wordpress.org/trunk@57874 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-06-17 18:03:13 +00:00
..
css Quick/Bulk Edit: Further adjust label width for translations. after [58325] 2024-06-13 21:38:12 +00:00
images Help/About: Update the About page for 6.5. 2024-02-26 23:51:12 +00:00
includes Docs: Add missing description for a few globals in the admin. 2024-06-15 12:34:13 +00:00
js Administration: A11y: Add visible labels in theme UI. 2024-06-13 13:57:10 +00:00
maint Code Modernization: Use `dirname()` with the `$levels` parameter. 2023-09-11 04:53:22 +00:00
network Administration: A11y: Add visible labels in theme UI. 2024-06-13 13:57:10 +00:00
user Multisite: Add missing "contribute.php" file to User Dashboard. 2024-05-08 17:04:13 +00:00
about.php Help/About: Update the About page for 6.5. 2024-03-23 09:22:10 +00:00
admin-ajax.php Upgrade/Install: Introduce Plugin Dependencies. 2024-02-06 23:46:14 +00:00
admin-footer.php Coding Standards: Simplify a condition in `wp-admin/admin-footer.php`. 2021-06-01 11:30:57 +00:00
admin-functions.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
admin-header.php Docs: Add missing description for a few globals in the admin. 2024-06-15 12:34:13 +00:00
admin-post.php General: Remove any usage of `wp_reset_vars()`. 2024-05-01 18:01:12 +00:00
admin.php Docs: Use third-person singular verbs in various function descriptions, as per docblocks standards. 2023-06-14 14:08:18 +00:00
async-upload.php Media: Follow the "proximity of controls" accessibility guidelines in the multi-file uploader. 2024-06-02 08:37:09 +00:00
authorize-application.php Administration: Use `wp_admin_notice()` in `/wp-admin/`. 2023-09-14 00:54:19 +00:00
comment.php General: Remove any usage of `wp_reset_vars()`. 2024-05-01 18:01:12 +00:00
contribute.php Help/About: Update the About page for 6.5. 2024-02-26 23:51:12 +00:00
credits.php Help/About: Update the About page for 6.5. 2024-02-26 23:51:12 +00:00
custom-background.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
custom-header.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
customize.php General: Remove any usage of `wp_reset_vars()`. 2024-05-01 18:01:12 +00:00
edit-comments.php Administration: Use `wp_admin_notice()` more in `wp-admin/`. 2023-09-17 15:33:17 +00:00
edit-form-advanced.php Docs: Add missing description for a few globals in the admin. 2024-06-15 12:34:13 +00:00
edit-form-blocks.php Docs: Add missing description for a few globals in the admin. 2024-06-15 12:34:13 +00:00
edit-form-comment.php I18N: Mark screen reader strings as such with translator comments. 2023-02-07 17:10:21 +00:00
edit-link-form.php Administration: Use `wp_admin_notice()` for `.updated`. 2023-09-14 02:15:17 +00:00
edit-tag-form.php General: Remove any usage of `wp_reset_vars()`. 2024-05-01 18:01:12 +00:00
edit-tags.php Docs: Add missing description for a few globals in the admin. 2024-06-15 12:34:13 +00:00
edit.php Docs: Add missing description for a few globals in the admin. 2024-06-15 12:34:13 +00:00
erase-personal-data.php Help/About: Accessibility: Remove `target="_blank"` from data eraser links. 2024-04-17 20:21:15 +00:00
export-personal-data.php Help/About: Accessibility: Remove `target="_blank"` from data eraser links. 2024-04-17 20:21:15 +00:00
export.php Docs: Correct the placement of `@global` tags in various files. 2024-05-26 20:51:13 +00:00
freedoms.php Help/About: Update the About page for 6.5. 2024-02-26 23:51:12 +00:00
import.php Upgrade/Install: Improve localized strings related to plugin/theme installation and activation. 2024-02-26 20:35:08 +00:00
index.php Administration: Use `wp_admin_notice()` in `/wp-admin/`. 2023-09-14 00:54:19 +00:00
install-helper.php Docs: Fix typo and improve DocBlock formatting in `wp-admin/install-helper.php`. 2022-11-20 14:10:15 +00:00
install.php Upgrade/Install: Fix JavaScript localization on install page. 2024-01-15 18:57:14 +00:00
link-add.php General: Remove any usage of `wp_reset_vars()`. 2024-05-01 18:01:12 +00:00
link-manager.php Administration: Use `wp_admin_notice()` for `.updated`. 2023-09-14 02:15:17 +00:00
link-parse-opml.php Code Modernization: Use wp_trigger_error() instead of trigger_error(). 2024-06-13 20:50:14 +00:00
link.php General: Remove any usage of `wp_reset_vars()`. 2024-05-01 18:01:12 +00:00
load-scripts.php Script Loader: Improve asset concatenation Etags. 2024-04-07 23:53:19 +00:00
load-styles.php Script Loader: Improve asset concatenation Etags. 2024-04-07 23:53:19 +00:00
media-new.php Help/About: Use the new `/documentation/` URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
media-upload.php Coding Standards: Remove superfluous blank lines at the end of various files. 2023-09-07 14:59:21 +00:00
media.php General: Remove any usage of `wp_reset_vars()`. 2024-05-01 18:01:12 +00:00
menu-header.php Docs: Replace multiple single line comments with multi-line comments. 2023-07-09 19:56:23 +00:00
menu.php Editor: Expose the Site Editor Patterns page for classic themes. 2024-06-02 08:17:17 +00:00
moderation.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
ms-admin.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
ms-delete-site.php Text Changes: Improve the wording of the email sent to confirm site deletion. 2022-11-14 21:57:10 +00:00
ms-edit.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
ms-options.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
ms-sites.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
ms-themes.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
ms-upgrade-network.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
ms-users.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
my-sites.php Administration: Add improved context for `add new` links. 2023-09-05 19:26:26 +00:00
nav-menus.php Menus: Accessibility: Improve screen reader text for edit button. 2024-06-03 20:35:13 +00:00
network.php Docs: Update various HelpHub links to avoid unnecessary redirections. 2024-03-08 22:38:08 +00:00
options-discussion.php Help/About: Use the new `/documentation/` URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
options-general.php Coding Standards: Use strict comparison in `wp-admin/options-general.php`. 2024-03-14 14:27:13 +00:00
options-head.php General: Remove any usage of `wp_reset_vars()`. 2024-05-01 18:01:12 +00:00
options-media.php Help/About: Use the new `/documentation/` URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
options-permalink.php Docs: Update various HelpHub links to avoid unnecessary redirections. 2024-03-08 22:38:08 +00:00
options-privacy.php Administration: Remove empty form `action` attributes. 2024-01-16 17:31:13 +00:00
options-reading.php Normalize UTF-8 charset slug detection. 2024-05-14 18:05:11 +00:00
options-writing.php Docs: Update various HelpHub links to avoid unnecessary redirections. 2024-03-08 22:38:08 +00:00
options.php Code Modernization: Fix 'ping_sites' non-nullable deprecation. 2024-06-17 18:03:13 +00:00
plugin-editor.php Docs: Update various HelpHub links to avoid unnecessary redirections. 2024-03-19 14:46:15 +00:00
plugin-install.php Plugin Dependencies: Remove auto-deactivation and bootstrapping logic. 2024-02-20 07:27:06 +00:00
plugins.php Administration: A11y: Replace placeholders with visible labels. 2024-05-14 16:49:09 +00:00
post-new.php Docs: Add missing description for a few globals in the admin. 2024-06-15 12:34:13 +00:00
post.php Docs: Add missing description for a few globals in the admin. 2024-06-15 12:34:13 +00:00
press-this.php Upgrade/Install: Improve localized strings related to plugin/theme installation and activation. 2024-02-26 20:35:08 +00:00
privacy-policy-guide.php Text Changes: Update mentions of “web site” to “website” for consistency. 2023-11-22 17:44:24 +00:00
privacy.php Help/About: Update the About page for 6.5. 2024-02-26 23:51:12 +00:00
profile.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
revision.php General: Remove any usage of `wp_reset_vars()`. 2024-05-01 18:01:12 +00:00
setup-config.php Database: Remove back-compat for database servers that don't support `utf8mb4`. 2024-04-04 15:13:14 +00:00
site-editor.php Editor: Show the patterns page for classic themes. 2024-02-06 19:42:13 +00:00
site-health-info.php Site Health: Add fonts upload location to Site Health report. 2024-06-03 16:56:16 +00:00
site-health.php General: Remove any usage of `wp_reset_vars()`. 2024-05-01 18:01:12 +00:00
term.php General: Replace all `esc_url_raw()` calls in core with `sanitize_url()`. 2022-06-01 18:14:10 +00:00
theme-editor.php General: Remove any usage of `wp_reset_vars()`. 2024-05-01 18:01:12 +00:00
theme-install.php Administration: A11y: Add visible labels in theme UI. 2024-06-13 13:57:10 +00:00
themes.php Coding Standards: Apply changes after running `composer format`. 2024-06-13 15:06:07 +00:00
tools.php Help/About: Use the new `/documentation/` URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
update-core.php Docs: Update various HelpHub links to avoid unnecessary redirections. 2024-03-08 22:38:08 +00:00
update.php Uploads: Check for and verify ZIP archives. 2024-01-30 14:23:12 +00:00
upgrade-functions.php Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant. 2020-02-06 06:33:11 +00:00
upgrade.php Upgrade/Install: Add missing escaping function for `get_option( 'home' )` in `upgrade.php`. 2023-08-25 05:44:16 +00:00
upload.php Upload: Move an assignment in `wp-admin/upload.php` into a conditional branch. 2024-03-09 18:07:15 +00:00
user-edit.php User: Make the `user_login` field `readonly` instead of `disabled`. 2024-06-02 09:55:10 +00:00
user-new.php Users: Remove periods in checkbox labels for consistency. 2024-01-12 17:14:14 +00:00
users.php Users: Show "Password reset link sent" message only when finished. 2023-10-15 14:04:23 +00:00
widgets-form-blocks.php Widgets: Add missing no JS notice in Widgets screen. 2023-09-25 00:00:17 +00:00
widgets-form.php Administration: Remove empty form `action` attributes. 2024-01-16 17:31:13 +00:00
widgets.php Administration: Replace contracted verb forms for better consistency. 2022-03-22 19:59:04 +00:00