--- a/wp/wp-admin/includes/class-wp-screen.php Thu Sep 29 08:06:27 2022 +0200
+++ b/wp/wp-admin/includes/class-wp-screen.php Fri Sep 05 18:40:08 2025 +0200
@@ -12,6 +12,7 @@
*
* @since 3.3.0
*/
+#[AllowDynamicProperties]
final class WP_Screen {
/**
* Any action associated with the screen.
@@ -88,7 +89,7 @@
* have a `$parent_base` of 'edit'.
*
* @since 3.3.0
- * @var string
+ * @var string|null
*/
public $parent_base;
@@ -98,7 +99,7 @@
* Some `$parent_file` values are 'edit.php?post_type=page', 'edit.php', and 'options-general.php'.
*
* @since 3.3.0
- * @var string
+ * @var string|null
*/
public $parent_file;
@@ -143,7 +144,7 @@
* The accessible hidden headings and text associated with the screen, if any.
*
* @since 4.4.0
- * @var array
+ * @var string[]
*/
private $_screen_reader_content = array();
@@ -211,6 +212,7 @@
return $hook_name;
}
+ $id = '';
$post_type = null;
$taxonomy = null;
$in_admin = false;
@@ -219,7 +221,7 @@
if ( $hook_name ) {
$id = $hook_name;
- } else {
+ } elseif ( ! empty( $GLOBALS['hook_suffix'] ) ) {
$id = $GLOBALS['hook_suffix'];
}
@@ -228,7 +230,7 @@
$post_type = $id;
$id = 'post'; // Changes later. Ends up being $base.
} else {
- if ( '.php' === substr( $id, -4 ) ) {
+ if ( str_ends_with( $id, '.php' ) ) {
$id = substr( $id, 0, -4 );
}
@@ -239,16 +241,16 @@
}
if ( ! $post_type && $hook_name ) {
- if ( '-network' === substr( $id, -8 ) ) {
+ if ( str_ends_with( $id, '-network' ) ) {
$id = substr( $id, 0, -8 );
$in_admin = 'network';
- } elseif ( '-user' === substr( $id, -5 ) ) {
+ } elseif ( str_ends_with( $id, '-user' ) ) {
$id = substr( $id, 0, -5 );
$in_admin = 'user';
}
$id = sanitize_key( $id );
- if ( 'edit-comments' !== $id && 'edit-tags' !== $id && 'edit-' === substr( $id, 0, 5 ) ) {
+ if ( 'edit-comments' !== $id && 'edit-tags' !== $id && str_starts_with( $id, 'edit-' ) ) {
$maybe = substr( $id, 5 );
if ( taxonomy_exists( $maybe ) ) {
$id = 'edit-tags';
@@ -430,7 +432,7 @@
private function __construct() {}
/**
- * Indicates whether the screen is in a particular admin
+ * Indicates whether the screen is in a particular admin.
*
* @since 3.5.0
*
@@ -475,7 +477,7 @@
}
/**
- * Set the parent information for the screen.
+ * Sets the parent information for the screen.
*
* This is called in admin-header.php after the menu parent for the screen has been determined.
*
@@ -505,7 +507,7 @@
}
/**
- * Remove an option from the screen.
+ * Removes an option from the screen.
*
* @since 3.8.0
*
@@ -516,7 +518,7 @@
}
/**
- * Remove all options from the screen.
+ * Removes all options from the screen.
*
* @since 3.8.0
*/
@@ -525,7 +527,7 @@
}
/**
- * Get the options registered for the screen.
+ * Gets the options registered for the screen.
*
* @since 3.8.0
*
@@ -606,7 +608,7 @@
}
/**
- * Add a help tab to the contextual help for the screen.
+ * Adds a help tab to the contextual help for the screen.
*
* Call this on the `load-$pagenow` hook for the relevant screen,
* or fetch the `$current_screen` object, or use get_current_screen()
@@ -682,7 +684,7 @@
}
/**
- * Add a sidebar to the contextual help for the screen.
+ * Adds a sidebar to the contextual help for the screen.
*
* Call this in template files after admin.php is loaded and before admin-header.php is loaded
* to add a sidebar to the contextual help.
@@ -713,20 +715,20 @@
}
/**
- * Get the accessible hidden headings and text used in the screen.
+ * Gets the accessible hidden headings and text used in the screen.
*
* @since 4.4.0
*
* @see set_screen_reader_content() For more information on the array format.
*
- * @return array An associative array of screen reader text strings.
+ * @return string[] An associative array of screen reader text strings.
*/
public function get_screen_reader_content() {
return $this->_screen_reader_content;
}
/**
- * Get a screen reader text string.
+ * Gets a screen reader text string.
*
* @since 4.4.0
*
@@ -741,7 +743,7 @@
}
/**
- * Add accessible hidden headings and text for the screen.
+ * Adds accessible hidden headings and text for the screen.
*
* @since 4.4.0
*
@@ -768,7 +770,7 @@
}
/**
- * Remove all the accessible hidden headings and text for the screen.
+ * Removes all the accessible hidden headings and text for the screen.
*
* @since 4.4.0
*/
@@ -777,7 +779,7 @@
}
/**
- * Render the screen's help section.
+ * Renders the screen's help section.
*
* This will trigger the deprecated filters for backward compatibility.
*
@@ -982,7 +984,7 @@
}
/**
- * @global array $wp_meta_boxes
+ * @global array $wp_meta_boxes Global meta box state.
*
* @return bool
*/
@@ -1034,7 +1036,7 @@
}
/**
- * Render the screen options tab.
+ * Renders the screen options tab.
*
* @since 3.3.0
*
@@ -1097,11 +1099,11 @@
}
/**
- * Render the meta boxes preferences.
+ * Renders the meta boxes preferences.
*
* @since 4.4.0
*
- * @global array $wp_meta_boxes
+ * @global array $wp_meta_boxes Global meta box state.
*/
public function render_meta_boxes_preferences() {
global $wp_meta_boxes;
@@ -1114,8 +1116,9 @@
<legend><?php _e( 'Screen elements' ); ?></legend>
<p>
<?php _e( 'Some screen elements can be shown or hidden by using the checkboxes.' ); ?>
- <?php _e( 'They can be expanded and collapsed by clickling on their headings, and arranged by dragging their headings or by clicking on the up and down arrows.' ); ?>
+ <?php _e( 'Expand or collapse the elements by clicking on their headings, and arrange them by dragging their headings or by clicking on the up and down arrows.' ); ?>
</p>
+ <div class="metabox-prefs-container">
<?php
meta_box_prefs( $this );
@@ -1135,12 +1138,13 @@
echo _x( 'Welcome', 'Welcome panel' ) . "</label>\n";
}
?>
+ </div>
</fieldset>
<?php
}
/**
- * Render the list table columns preferences.
+ * Renders the list table columns preferences.
*
* @since 4.4.0
*/
@@ -1188,7 +1192,7 @@
}
/**
- * Render the option for number of columns on the page
+ * Renders the option for number of columns on the page.
*
* @since 3.3.0
*/
@@ -1220,7 +1224,7 @@
}
/**
- * Render the items per page option
+ * Renders the items per page option.
*
* @since 3.3.0
*/
@@ -1275,7 +1279,7 @@
<?php if ( $per_page_label ) : ?>
<label for="<?php echo esc_attr( $option ); ?>"><?php echo $per_page_label; ?></label>
<input type="number" step="1" min="1" max="999" class="screen-per-page" name="wp_screen_options[value]"
- id="<?php echo esc_attr( $option ); ?>" maxlength="3"
+ id="<?php echo esc_attr( $option ); ?>"
value="<?php echo esc_attr( $per_page ); ?>" />
<?php endif; ?>
<input type="hidden" name="wp_screen_options[option]" value="<?php echo esc_attr( $option ); ?>" />
@@ -1284,7 +1288,7 @@
}
/**
- * Render the list table view mode preferences.
+ * Renders the list table view mode preferences.
*
* @since 4.4.0
*
@@ -1338,7 +1342,7 @@
}
/**
- * Render screen reader text.
+ * Renders screen reader text.
*
* @since 4.4.0
*