WP_MS_Users_List_Table::prepare_items()publicWP 1.0

Method of the class: WP_MS_Users_List_Table{}

Hooks from the method

Return

null. Nothing (null).

Usage

$WP_MS_Users_List_Table = new WP_MS_Users_List_Table();
$WP_MS_Users_List_Table->prepare_items();

Notes

  • Global. String. $mode List table view mode.
  • Global. String. $usersearch
  • Global. String. $role

WP_MS_Users_List_Table::prepare_items() code WP 6.6.2

public function prepare_items() {
	global $mode, $usersearch, $role;

	if ( ! empty( $_REQUEST['mode'] ) ) {
		$mode = 'excerpt' === $_REQUEST['mode'] ? 'excerpt' : 'list';
		set_user_setting( 'network_users_list_mode', $mode );
	} else {
		$mode = get_user_setting( 'network_users_list_mode', 'list' );
	}

	$usersearch = isset( $_REQUEST['s'] ) ? wp_unslash( trim( $_REQUEST['s'] ) ) : '';

	$users_per_page = $this->get_items_per_page( 'users_network_per_page' );

	$role = isset( $_REQUEST['role'] ) ? $_REQUEST['role'] : '';

	$paged = $this->get_pagenum();

	$args = array(
		'number'  => $users_per_page,
		'offset'  => ( $paged - 1 ) * $users_per_page,
		'search'  => $usersearch,
		'blog_id' => 0,
		'fields'  => 'all_with_meta',
	);

	if ( wp_is_large_network( 'users' ) ) {
		$args['search'] = ltrim( $args['search'], '*' );
	} elseif ( '' !== $args['search'] ) {
		$args['search'] = trim( $args['search'], '*' );
		$args['search'] = '*' . $args['search'] . '*';
	}

	if ( 'super' === $role ) {
		$args['login__in'] = get_super_admins();
	}

	/*
	 * If the network is large and a search is not being performed,
	 * show only the latest users with no paging in order to avoid
	 * expensive count queries.
	 */
	if ( ! $usersearch && wp_is_large_network( 'users' ) ) {
		if ( ! isset( $_REQUEST['orderby'] ) ) {
			$_GET['orderby']     = 'id';
			$_REQUEST['orderby'] = 'id';
		}
		if ( ! isset( $_REQUEST['order'] ) ) {
			$_GET['order']     = 'DESC';
			$_REQUEST['order'] = 'DESC';
		}
		$args['count_total'] = false;
	}

	if ( isset( $_REQUEST['orderby'] ) ) {
		$args['orderby'] = $_REQUEST['orderby'];
	}

	if ( isset( $_REQUEST['order'] ) ) {
		$args['order'] = $_REQUEST['order'];
	}

	/** This filter is documented in wp-admin/includes/class-wp-users-list-table.php */
	$args = apply_filters( 'users_list_table_query_args', $args );

	// Query the user IDs for this page.
	$wp_user_search = new WP_User_Query( $args );

	$this->items = $wp_user_search->get_results();

	$this->set_pagination_args(
		array(
			'total_items' => $wp_user_search->get_total(),
			'per_page'    => $users_per_page,
		)
	);
}