WP_Users_List_Table::prepare_items()publicWP 3.1.0

Prepares the users list for display.

Method of the class: WP_Users_List_Table{}

Hooks from the method

Return

null. Nothing (null).

Usage

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

Notes

  • Global. String. $role
  • Global. String. $usersearch

Changelog

Since 3.1.0 Introduced.

WP_Users_List_Table::prepare_items() code WP 6.6.2

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

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

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

	$per_page       = ( $this->is_site_users ) ? 'site_users_network_per_page' : 'users_per_page';
	$users_per_page = $this->get_items_per_page( $per_page );

	$paged = $this->get_pagenum();

	if ( 'none' === $role ) {
		$args = array(
			'number'  => $users_per_page,
			'offset'  => ( $paged - 1 ) * $users_per_page,
			'include' => wp_get_users_with_no_role( $this->site_id ),
			'search'  => $usersearch,
			'fields'  => 'all_with_meta',
		);
	} else {
		$args = array(
			'number' => $users_per_page,
			'offset' => ( $paged - 1 ) * $users_per_page,
			'role'   => $role,
			'search' => $usersearch,
			'fields' => 'all_with_meta',
		);
	}

	if ( '' !== $args['search'] ) {
		$args['search'] = '*' . $args['search'] . '*';
	}

	if ( $this->is_site_users ) {
		$args['blog_id'] = $this->site_id;
	}

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

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

	/**
	 * Filters the query arguments used to retrieve users for the current users list table.
	 *
	 * @since 4.4.0
	 *
	 * @param array $args Arguments passed to WP_User_Query to retrieve items for the current
	 *                    users list table.
	 */
	$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,
		)
	);
}