diff -r 7b1b88e27a20 -r 48c4eec2b7e6 wp/wp-admin/includes/class-wp-ms-sites-list-table.php
--- a/wp/wp-admin/includes/class-wp-ms-sites-list-table.php Thu Sep 29 08:06:27 2022 +0200
+++ b/wp/wp-admin/includes/class-wp-ms-sites-list-table.php Fri Sep 05 18:40:08 2025 +0200
@@ -11,7 +11,6 @@
* Core class used to implement displaying sites in a list table for the network admin.
*
* @since 3.1.0
- * @access private
*
* @see WP_List_Table
*/
@@ -82,7 +81,7 @@
$s = isset( $_REQUEST['s'] ) ? wp_unslash( trim( $_REQUEST['s'] ) ) : '';
$wild = '';
- if ( false !== strpos( $s, '*' ) ) {
+ if ( str_contains( $s, '*' ) ) {
$wild = '*';
$s = trim( $s, '*' );
}
@@ -110,12 +109,17 @@
if ( empty( $s ) ) {
// Nothing to do.
- } elseif ( preg_match( '/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/', $s ) ||
- preg_match( '/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.?$/', $s ) ||
- preg_match( '/^[0-9]{1,3}\.[0-9]{1,3}\.?$/', $s ) ||
- preg_match( '/^[0-9]{1,3}\.$/', $s ) ) {
+ } elseif ( preg_match( '/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/', $s )
+ || preg_match( '/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.?$/', $s )
+ || preg_match( '/^[0-9]{1,3}\.[0-9]{1,3}\.?$/', $s )
+ || preg_match( '/^[0-9]{1,3}\.$/', $s )
+ ) {
// IPv4 address.
- $sql = $wpdb->prepare( "SELECT blog_id FROM {$wpdb->registration_log} WHERE {$wpdb->registration_log}.IP LIKE %s", $wpdb->esc_like( $s ) . ( ! empty( $wild ) ? '%' : '' ) );
+ $sql = $wpdb->prepare(
+ "SELECT blog_id FROM {$wpdb->registration_log} WHERE {$wpdb->registration_log}.IP LIKE %s",
+ $wpdb->esc_like( $s ) . ( ! empty( $wild ) ? '%' : '' )
+ );
+
$reg_blog_ids = $wpdb->get_col( $sql );
if ( $reg_blog_ids ) {
@@ -262,23 +266,23 @@
$url = 'sites.php';
foreach ( $statuses as $status => $label_count ) {
- $current_link_attributes = $requested_status === $status || ( '' === $requested_status && 'all' === $status )
- ? ' class="current" aria-current="page"'
- : '';
if ( (int) $counts[ $status ] > 0 ) {
- $label = sprintf( translate_nooped_plural( $label_count, $counts[ $status ] ), number_format_i18n( $counts[ $status ] ) );
+ $label = sprintf(
+ translate_nooped_plural( $label_count, $counts[ $status ] ),
+ number_format_i18n( $counts[ $status ] )
+ );
+
$full_url = 'all' === $status ? $url : add_query_arg( 'status', $status, $url );
- $view_links[ $status ] = sprintf(
- '%3$s',
- esc_url( $full_url ),
- $current_link_attributes,
- $label
+ $view_links[ $status ] = array(
+ 'url' => esc_url( $full_url ),
+ 'label' => $label,
+ 'current' => $requested_status === $status || ( '' === $requested_status && 'all' === $status ),
);
}
}
- return $view_links;
+ return $this->get_views_links( $view_links );
}
/**
@@ -298,7 +302,7 @@
/**
* @global string $mode List table view mode.
*
- * @param string $which The location of the pagination nav markup: 'top' or 'bottom'.
+ * @param string $which The location of the pagination nav markup: Either 'top' or 'bottom'.
*/
protected function pagination( $which ) {
global $mode;
@@ -311,11 +315,11 @@
}
/**
- * Extra controls to be displayed between bulk actions and pagination.
+ * Displays extra controls between bulk actions and pagination.
*
* @since 5.3.0
*
- * @param string $which The location of the extra table nav markup: 'top' or 'bottom'.
+ * @param string $which The location of the extra table nav markup: Either 'top' or 'bottom'.
*/
protected function extra_tablenav( $which ) {
?>
@@ -329,7 +333,7 @@
*
* @since 5.3.0
*
- * @param string $which The location of the extra table nav markup: 'top' or 'bottom'.
+ * @param string $which The location of the extra table nav markup: Either 'top' or 'bottom'.
*/
do_action( 'restrict_manage_sites', $which );
@@ -349,13 +353,13 @@
*
* @since 5.3.0
*
- * @param string $which The location of the extra table nav markup: 'top' or 'bottom'.
+ * @param string $which The location of the extra table nav markup: Either 'top' or 'bottom'.
*/
do_action( 'manage_sites_extra_tablenav', $which );
}
/**
- * @return array
+ * @return string[] Array of column titles keyed by their column name.
*/
public function get_columns() {
$sites_columns = array(
@@ -385,10 +389,19 @@
* @return array
*/
protected function get_sortable_columns() {
+
+ if ( is_subdomain_install() ) {
+ $blogname_abbr = __( 'Domain' );
+ $blogname_orderby_text = __( 'Table ordered by Site Domain Name.' );
+ } else {
+ $blogname_abbr = __( 'Path' );
+ $blogname_orderby_text = __( 'Table ordered by Site Path.' );
+ }
+
return array(
- 'blogname' => 'blogname',
- 'lastupdated' => 'lastupdated',
- 'registered' => 'blog_id',
+ 'blogname' => array( 'blogname', false, $blogname_abbr, $blogname_orderby_text ),
+ 'lastupdated' => array( 'lastupdated', true, __( 'Last Updated' ), __( 'Table ordered by Last Updated.' ) ),
+ 'registered' => array( 'blog_id', true, _x( 'Registered', 'site' ), __( 'Table ordered by Site Registered Date.' ), 'desc' ),
);
}
@@ -407,13 +420,15 @@
if ( ! is_main_site( $blog['blog_id'] ) ) :
$blogname = untrailingslashit( $blog['domain'] . $blog['path'] );
?>
-