Title: WP_Users_List_Table::prepare_items
Published: April 25, 2014
Last modified: May 20, 2026

---

# WP_Users_List_Table::prepare_items()

## In this article

 * [Source](https://developer.wordpress.org/reference/classes/wp_users_list_table/prepare_items/?output_format=md#source)
 * [Hooks](https://developer.wordpress.org/reference/classes/wp_users_list_table/prepare_items/?output_format=md#hooks)
 * [Related](https://developer.wordpress.org/reference/classes/wp_users_list_table/prepare_items/?output_format=md#related)
 * [Changelog](https://developer.wordpress.org/reference/classes/wp_users_list_table/prepare_items/?output_format=md#changelog)

[ Back to top](https://developer.wordpress.org/reference/classes/wp_users_list_table/prepare_items/?output_format=md#wp--skip-link--target)

Prepares the users list for display.

## 󠀁[Source](https://developer.wordpress.org/reference/classes/wp_users_list_table/prepare_items/?output_format=md#source)󠁿

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

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

    	$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,
    		)
    	);
    }
    ```

[View all references](https://developer.wordpress.org/reference/files/wp-admin/includes/class-wp-users-list-table.php/)
[View on Trac](https://core.trac.wordpress.org/browser/tags/7.0/src/wp-admin/includes/class-wp-users-list-table.php#L83)
[View on GitHub](https://github.com/WordPress/wordpress-develop/blob/7.0/src/wp-admin/includes/class-wp-users-list-table.php#L83-L150)

## 󠀁[Hooks](https://developer.wordpress.org/reference/classes/wp_users_list_table/prepare_items/?output_format=md#hooks)󠁿

 [apply_filters( ‘users_list_table_query_args’, array $args )](https://developer.wordpress.org/reference/hooks/users_list_table_query_args/)

Filters the query arguments used to retrieve users for the current users list table.

## 󠀁[Related](https://developer.wordpress.org/reference/classes/wp_users_list_table/prepare_items/?output_format=md#related)󠁿

| Uses | Description | 
| [wp_get_users_with_no_role()](https://developer.wordpress.org/reference/functions/wp_get_users_with_no_role/)`wp-includes/user.php` |

Gets the user IDs of all users with no role on this site.

  | 
| [WP_User_Search::get_results()](https://developer.wordpress.org/reference/classes/wp_user_search/get_results/)`wp-admin/includes/deprecated.php` |

Retrieves the user search query results.

  | 
| [WP_User_Query::__construct()](https://developer.wordpress.org/reference/classes/wp_user_query/__construct/)`wp-includes/class-wp-user-query.php` |

Constructor.

  | 
| [wp_unslash()](https://developer.wordpress.org/reference/functions/wp_unslash/)`wp-includes/formatting.php` |

Removes slashes from a string or recursively removes slashes from strings within an array.

  | 
| [apply_filters()](https://developer.wordpress.org/reference/functions/apply_filters/)`wp-includes/plugin.php` |

Calls the callback functions that have been added to a filter hook.

  |

[Show 2 more](https://developer.wordpress.org/reference/classes/wp_users_list_table/prepare_items/?output_format=md#)
[Show less](https://developer.wordpress.org/reference/classes/wp_users_list_table/prepare_items/?output_format=md#)

## 󠀁[Changelog](https://developer.wordpress.org/reference/classes/wp_users_list_table/prepare_items/?output_format=md#changelog)󠁿

| Version | Description | 
| [3.1.0](https://developer.wordpress.org/reference/since/3.1.0/) | Introduced. |

## User Contributed Notes

You must [log in](https://login.wordpress.org/?redirect_to=https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwp_users_list_table%2Fprepare_items%2F)
before being able to contribute a note or feedback.