--- a/wp/wp-admin/includes/class-wp-screen.php Tue Oct 22 16:11:46 2019 +0200
+++ b/wp/wp-admin/includes/class-wp-screen.php Tue Dec 15 13:49:49 2020 +0100
@@ -14,7 +14,9 @@
*/
final class WP_Screen {
/**
- * Any action associated with the screen. 'add' for *-add.php and *-new.php screens. Empty otherwise.
+ * Any action associated with the screen.
+ *
+ * 'add' for *-add.php and *-new.php screens. Empty otherwise.
*
* @since 3.3.0
* @var string
@@ -22,8 +24,10 @@
public $action;
/**
- * The base type of the screen. This is typically the same as $id but with any post types and taxonomies stripped.
- * For example, for an $id of 'edit-post' the base is 'edit'.
+ * The base type of the screen.
+ *
+ * This is typically the same as `$id` but with any post types and taxonomies stripped.
+ * For example, for an `$id` of 'edit-post' the base is 'edit'.
*
* @since 3.3.0
* @var string
@@ -78,8 +82,10 @@
/**
* The base menu parent.
- * This is derived from $parent_file by removing the query string and any .php extension.
- * $parent_file values of 'edit.php?post_type=page' and 'edit.php?post_type=post' have a $parent_base of 'edit'.
+ *
+ * This is derived from `$parent_file` by removing the query string and any .php extension.
+ * `$parent_file` values of 'edit.php?post_type=page' and 'edit.php?post_type=post'
+ * have a `$parent_base` of 'edit'.
*
* @since 3.3.0
* @var string
@@ -88,7 +94,8 @@
/**
* The parent_file for the screen per the admin menu system.
- * Some $parent_file values are 'edit.php?post_type=page', 'edit.php', and 'options-general.php'.
+ *
+ * Some `$parent_file` values are 'edit.php?post_type=page', 'edit.php', and 'options-general.php'.
*
* @since 3.3.0
* @var string
@@ -97,6 +104,7 @@
/**
* The post type associated with the screen, if any.
+ *
* The 'edit.php?post_type=page' screen has a post type of 'page'.
* The 'edit-tags.php?taxonomy=$taxonomy&post_type=page' screen has a post type of 'page'.
*
@@ -107,6 +115,7 @@
/**
* The taxonomy associated with the screen, if any.
+ *
* The 'edit-tags.php?taxonomy=category' screen has a taxonomy of 'category'.
*
* @since 3.3.0
@@ -202,7 +211,8 @@
return $hook_name;
}
- $post_type = $taxonomy = null;
+ $post_type = null;
+ $taxonomy = null;
$in_admin = false;
$action = '';
$is_block_editor = false;
@@ -216,29 +226,29 @@
// For those pesky meta boxes.
if ( $hook_name && post_type_exists( $hook_name ) ) {
$post_type = $id;
- $id = 'post'; // changes later. ends up being $base.
+ $id = 'post'; // Changes later. Ends up being $base.
} else {
- if ( '.php' == substr( $id, -4 ) ) {
+ if ( '.php' === substr( $id, -4 ) ) {
$id = substr( $id, 0, -4 );
}
- if ( 'post-new' == $id || 'link-add' == $id || 'media-new' == $id || 'user-new' == $id ) {
+ if ( in_array( $id, array( 'post-new', 'link-add', 'media-new', 'user-new' ), true ) ) {
$id = substr( $id, 0, -4 );
$action = 'add';
}
}
if ( ! $post_type && $hook_name ) {
- if ( '-network' == substr( $id, -8 ) ) {
+ if ( '-network' === substr( $id, -8 ) ) {
$id = substr( $id, 0, -8 );
$in_admin = 'network';
- } elseif ( '-user' == substr( $id, -5 ) ) {
+ } elseif ( '-user' === substr( $id, -5 ) ) {
$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 && 'edit-' === substr( $id, 0, 5 ) ) {
$maybe = substr( $id, 5 );
if ( taxonomy_exists( $maybe ) ) {
$id = 'edit-tags';
@@ -262,9 +272,9 @@
}
}
- if ( 'index' == $id ) {
+ if ( 'index' === $id ) {
$id = 'dashboard';
- } elseif ( 'front' == $id ) {
+ } elseif ( 'front' === $id ) {
$in_admin = false;
}
@@ -353,17 +363,17 @@
break;
}
- if ( 'network' == $in_admin ) {
+ if ( 'network' === $in_admin ) {
$id .= '-network';
$base .= '-network';
- } elseif ( 'user' == $in_admin ) {
+ } elseif ( 'user' === $in_admin ) {
$id .= '-user';
$base .= '-user';
}
if ( isset( self::$_registry[ $id ] ) ) {
$screen = self::$_registry[ $id ];
- if ( $screen === get_current_screen() ) {
+ if ( get_current_screen() === $screen ) {
return $screen;
}
} else {
@@ -375,8 +385,8 @@
$screen->action = $action;
$screen->post_type = (string) $post_type;
$screen->taxonomy = (string) $taxonomy;
- $screen->is_user = ( 'user' == $in_admin );
- $screen->is_network = ( 'network' == $in_admin );
+ $screen->is_user = ( 'user' === $in_admin );
+ $screen->is_network = ( 'network' === $in_admin );
$screen->in_admin = $in_admin;
$screen->is_block_editor = $is_block_editor;
@@ -391,7 +401,7 @@
* @see set_current_screen()
* @since 3.3.0
*
- * @global WP_Screen $current_screen
+ * @global WP_Screen $current_screen WordPress current screen object.
* @global string $taxnow
* @global string $typenow
*/
@@ -432,7 +442,7 @@
return (bool) $this->in_admin;
}
- return ( $admin == $this->in_admin );
+ return ( $admin === $this->in_admin );
}
/**
@@ -444,7 +454,7 @@
* @return bool True if the block editor is being loaded, false otherwise.
*/
public function is_block_editor( $set = null ) {
- if ( $set !== null ) {
+ if ( null !== $set ) {
$this->is_block_editor = (bool) $set;
}
@@ -457,7 +467,7 @@
* @since 3.3.0
*
* @param WP_Screen $screen A screen object.
- * @param string $help Help text.
+ * @param string $help Help text.
*/
public static function add_old_compat_help( $screen, $help ) {
self::$_old_compat_help[ $screen->id ] = $help;
@@ -465,6 +475,7 @@
/**
* Set the parent information for the screen.
+ *
* This is called in admin-header.php after the menu parent for the screen has been determined.
*
* @since 3.3.0
@@ -479,12 +490,14 @@
/**
* Adds an option for the screen.
- * Call this in template files after admin.php is loaded and before admin-header.php is loaded to add screen options.
+ *
+ * Call this in template files after admin.php is loaded and before admin-header.php is loaded
+ * to add screen options.
*
* @since 3.3.0
*
- * @param string $option Option ID
- * @param mixed $args Option-dependent arguments.
+ * @param string $option Option ID.
+ * @param mixed $args Option-dependent arguments.
*/
public function add_option( $option, $args = array() ) {
$this->_options[ $option ] = $args;
@@ -593,7 +606,13 @@
/**
* Add a help tab to the contextual help for the screen.
- * Call this on the load-$pagenow hook for the relevant screen.
+ *
+ * Call this on the `load-$pagenow` hook for the relevant screen,
+ * or fetch the `$current_screen` object, or use get_current_screen()
+ * and then call the method from the object.
+ *
+ * You may need to filter `$current_screen` using an if or switch statement
+ * to prevent new help tabs from being added to ALL admin screens.
*
* @since 3.3.0
* @since 4.4.0 The `$priority` argument was added.
@@ -601,11 +620,12 @@
* @param array $args {
* Array of arguments used to display the help tab.
*
- * @type string $title Title for the tab. Default false.
- * @type string $id Tab ID. Must be HTML-safe. Default false.
- * @type string $content Optional. Help tab content in plain text or HTML. Default empty string.
- * @type string $callback Optional. A callback to generate the tab content. Default false.
- * @type int $priority Optional. The priority of the tab, used for ordering. Default 10.
+ * @type string $title Title for the tab. Default false.
+ * @type string $id Tab ID. Must be HTML-safe and should be unique for this menu.
+ * It is NOT allowed to contain any empty spaces. Default false.
+ * @type string $content Optional. Help tab content in plain text or HTML. Default empty string.
+ * @type callable $callback Optional. A callback to generate the tab content. Default false.
+ * @type int $priority Optional. The priority of the tab, used for ordering. Default 10.
* }
*/
public function add_help_tab( $args ) {
@@ -662,7 +682,9 @@
/**
* Add 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.
+ *
+ * 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.
*
* @since 3.3.0
*
@@ -768,13 +790,18 @@
* Filters the legacy contextual help list.
*
* @since 2.7.0
- * @deprecated 3.3.0 Use get_current_screen()->add_help_tab() or
- * get_current_screen()->remove_help_tab() instead.
+ * @deprecated 3.3.0 Use {@see get_current_screen()->add_help_tab()} or
+ * {@see get_current_screen()->remove_help_tab()} instead.
*
* @param array $old_compat_help Old contextual help.
* @param WP_Screen $this Current WP_Screen instance.
*/
- self::$_old_compat_help = apply_filters( 'contextual_help_list', self::$_old_compat_help, $this );
+ self::$_old_compat_help = apply_filters_deprecated(
+ 'contextual_help_list',
+ array( self::$_old_compat_help, $this ),
+ '3.3.0',
+ 'get_current_screen()->add_help_tab(), get_current_screen()->remove_help_tab()'
+ );
$old_help = isset( self::$_old_compat_help[ $this->id ] ) ? self::$_old_compat_help[ $this->id ] : '';
@@ -782,14 +809,19 @@
* Filters the legacy contextual help text.
*
* @since 2.7.0
- * @deprecated 3.3.0 Use get_current_screen()->add_help_tab() or
- * get_current_screen()->remove_help_tab() instead.
+ * @deprecated 3.3.0 Use {@see get_current_screen()->add_help_tab()} or
+ * {@see get_current_screen()->remove_help_tab()} instead.
*
* @param string $old_help Help text that appears on the screen.
* @param string $screen_id Screen ID.
* @param WP_Screen $this Current WP_Screen instance.
*/
- $old_help = apply_filters( 'contextual_help', $old_help, $this->id, $this );
+ $old_help = apply_filters_deprecated(
+ 'contextual_help',
+ array( $old_help, $this->id, $this ),
+ '3.3.0',
+ 'get_current_screen()->add_help_tab(), get_current_screen()->remove_help_tab()'
+ );
// Default help only if there is no old-style block of text and no new-style help tabs.
if ( empty( $old_help ) && ! $this->get_help_tabs() ) {
@@ -798,12 +830,17 @@
* Filters the default legacy contextual help text.
*
* @since 2.8.0
- * @deprecated 3.3.0 Use get_current_screen()->add_help_tab() or
- * get_current_screen()->remove_help_tab() instead.
+ * @deprecated 3.3.0 Use {@see get_current_screen()->add_help_tab()} or
+ * {@see get_current_screen()->remove_help_tab()} instead.
*
* @param string $old_help_default Default contextual help text.
*/
- $default_help = apply_filters( 'default_contextual_help', '' );
+ $default_help = apply_filters_deprecated(
+ 'default_contextual_help',
+ array( '' ),
+ '3.3.0',
+ 'get_current_screen()->add_help_tab(), get_current_screen()->remove_help_tab()'
+ );
if ( $default_help ) {
$old_help = '<p>' . $default_help . '</p>';
}
@@ -886,7 +923,7 @@
</div>
</div>
<?php
- // Setup layout columns
+ // Setup layout columns.
/**
* Filters the array of screen layout columns.
@@ -915,7 +952,7 @@
}
$GLOBALS['screen_layout_columns'] = $this->columns; // Set the global for back-compat.
- // Add screen options
+ // Add screen options.
if ( $this->show_screen_options() ) {
$this->render_screen_options();
}
@@ -1004,7 +1041,9 @@
* @since 3.3.0
*
* @param array $options {
- * @type bool $wrap Whether the screen-options-wrap div will be included. Defaults to true.
+ * Options for the tab.
+ *
+ * @type bool $wrap Whether the screen-options-wrap div will be included. Defaults to true.
* }
*/
public function render_screen_options( $options = array() ) {
@@ -1015,7 +1054,10 @@
)
);
- $wrapper_start = $wrapper_end = $form_start = $form_end = '';
+ $wrapper_start = '';
+ $wrapper_end = '';
+ $form_start = '';
+ $form_end = '';
// Output optional wrapper.
if ( $options['wrap'] ) {
@@ -1080,8 +1122,8 @@
$welcome_checked = empty( $_GET['welcome'] ) ? 0 : 1;
update_user_meta( get_current_user_id(), 'show_welcome_panel', $welcome_checked );
} else {
- $welcome_checked = get_user_meta( get_current_user_id(), 'show_welcome_panel', true );
- if ( 2 == $welcome_checked && wp_get_current_user()->user_email != get_option( 'admin_email' ) ) {
+ $welcome_checked = (int) get_user_meta( get_current_user_id(), 'show_welcome_panel', true );
+ if ( 2 === $welcome_checked && wp_get_current_user()->user_email !== get_option( 'admin_email' ) ) {
$welcome_checked = false;
}
}
@@ -1116,8 +1158,8 @@
$special = array( '_title', 'cb', 'comment', 'media', 'name', 'title', 'username', 'blogname' );
foreach ( $columns as $column => $title ) {
- // Can't hide these for they are special
- if ( in_array( $column, $special ) ) {
+ // Can't hide these for they are special.
+ if ( in_array( $column, $special, true ) ) {
continue;
}
@@ -1134,7 +1176,7 @@
$id = "$column-hide";
echo '<label>';
- echo '<input class="hide-column-tog" name="' . $id . '" type="checkbox" id="' . $id . '" value="' . $column . '"' . checked( ! in_array( $column, $hidden ), true, false ) . ' />';
+ echo '<input class="hide-column-tog" name="' . $id . '" type="checkbox" id="' . $id . '" value="' . $column . '"' . checked( ! in_array( $column, $hidden, true ), true, false ) . ' />';
echo "$title</label>\n";
}
?>
@@ -1158,17 +1200,18 @@
?>
<fieldset class='columns-prefs'>
<legend class="screen-layout"><?php _e( 'Layout' ); ?></legend>
- <?php
- for ( $i = 1; $i <= $num; ++$i ) :
- ?>
- <label class="columns-prefs-<?php echo $i; ?>">
- <input type='radio' name='screen_columns' value='<?php echo esc_attr( $i ); ?>'
- <?php checked( $screen_layout_columns, $i ); ?> />
- <?php printf( _n( '%s column', '%s columns', $i ), number_format_i18n( $i ) ); ?>
- </label>
- <?php
- endfor;
- ?>
+ <?php for ( $i = 1; $i <= $num; ++$i ) : ?>
+ <label class="columns-prefs-<?php echo $i; ?>">
+ <input type='radio' name='screen_columns' value='<?php echo esc_attr( $i ); ?>' <?php checked( $screen_layout_columns, $i ); ?> />
+ <?php
+ printf(
+ /* translators: %s: Number of columns on the page. */
+ _n( '%s column', '%s columns', $i ),
+ number_format_i18n( $i )
+ );
+ ?>
+ </label>
+ <?php endfor; ?>
</fieldset>
<?php
}
@@ -1201,12 +1244,12 @@
}
}
- if ( 'edit_comments_per_page' == $option ) {
+ if ( 'edit_comments_per_page' === $option ) {
$comment_status = isset( $_REQUEST['comment_status'] ) ? $_REQUEST['comment_status'] : 'all';
/** This filter is documented in wp-admin/includes/class-wp-comments-list-table.php */
$per_page = apply_filters( 'comments_per_page', $per_page, $comment_status );
- } elseif ( 'categories_per_page' == $option ) {
+ } elseif ( 'categories_per_page' === $option ) {
/** This filter is documented in wp-admin/includes/class-wp-terms-list-table.php */
$per_page = apply_filters( 'edit_categories_per_page', $per_page );
} else {
@@ -1214,13 +1257,13 @@
$per_page = apply_filters( "{$option}", $per_page );
}
- // Back compat
+ // Back compat.
if ( isset( $this->post_type ) ) {
/** This filter is documented in wp-admin/includes/post.php */
$per_page = apply_filters( 'edit_posts_per_page', $per_page, $this->post_type );
}
- // This needs a submit button
+ // This needs a submit button.
add_filter( 'screen_options_show_submit', '__return_true' );
?>
@@ -1245,19 +1288,16 @@
* @global string $mode List table view mode.
*/
public function render_view_mode() {
+ global $mode;
+
$screen = get_current_screen();
- // Currently only enabled for posts lists
- if ( 'edit' !== $screen->base ) {
+ // Currently only enabled for posts and comments lists.
+ if ( 'edit' !== $screen->base && 'edit-comments' !== $screen->base ) {
return;
}
- $view_mode_post_types = get_post_types(
- array(
- 'hierarchical' => false,
- 'show_ui' => true,
- )
- );
+ $view_mode_post_types = get_post_types( array( 'show_ui' => true ) );
/**
* Filters the post types that have different view mode options.
@@ -1265,29 +1305,31 @@
* @since 4.4.0
*
* @param string[] $view_mode_post_types Array of post types that can change view modes.
- * Default non-hierarchical post types with show_ui on.
+ * Default post types with show_ui on.
*/
$view_mode_post_types = apply_filters( 'view_mode_post_types', $view_mode_post_types );
- if ( ! in_array( $this->post_type, $view_mode_post_types ) ) {
+ if ( 'edit' === $screen->base && ! in_array( $this->post_type, $view_mode_post_types, true ) ) {
return;
}
- global $mode;
+ if ( ! isset( $mode ) ) {
+ $mode = get_user_setting( 'posts_list_mode', 'list' );
+ }
- // This needs a submit button
+ // This needs a submit button.
add_filter( 'screen_options_show_submit', '__return_true' );
?>
<fieldset class="metabox-prefs view-mode">
- <legend><?php _e( 'View Mode' ); ?></legend>
- <label for="list-view-mode">
- <input id="list-view-mode" type="radio" name="mode" value="list" <?php checked( 'list', $mode ); ?> />
- <?php _e( 'List View' ); ?>
- </label>
- <label for="excerpt-view-mode">
- <input id="excerpt-view-mode" type="radio" name="mode" value="excerpt" <?php checked( 'excerpt', $mode ); ?> />
- <?php _e( 'Excerpt View' ); ?>
- </label>
+ <legend><?php _e( 'View mode' ); ?></legend>
+ <label for="list-view-mode">
+ <input id="list-view-mode" type="radio" name="mode" value="list" <?php checked( 'list', $mode ); ?> />
+ <?php _e( 'Compact view' ); ?>
+ </label>
+ <label for="excerpt-view-mode">
+ <input id="excerpt-view-mode" type="radio" name="mode" value="excerpt" <?php checked( 'excerpt', $mode ); ?> />
+ <?php _e( 'Extended view' ); ?>
+ </label>
</fieldset>
<?php
}