A very light-weight plugin, designed to easily create and manage a staff directory on your WordPress theme. Admins can manage staff records by importing (from CSV) or editing records individually. Record columns may be reordered (or hidden). Directory is sortable by column header, paginated, searchable, and customizable (by subset of records or number of records per page) using simple shortcode attributes.

Simple, Straight-Forward

The plugin is very light-weight, but robust. It allows for the individual management of staff directory records, or append/replace using a simple CSV (comma-separated variables) document.

  • Update five standard fields for each staff record (last name, first name, department, email, phone number)
  • Import from CSV or XLS allows administrators to keep their staff directory maintained, either by appending new records, or replacing the entire directory with an updated list
  • Fields are not required (and may be left blank) for general department mailboxes or numbers
  • Updates are performed on-the-fly, so no lengthy reloads are necessary
  • Design is split into separate stylesheet for ease of theming
  • No edit links or popups, just make your changes in-line
  • Case-insensitive substring search, with highlighted matches on front end
  • Uses jQuery/AJAX for page handling, sorting & searching without pageload (either on type, on enter, or both)
  • Tipsy is incorporated for contact cards, to display additional information about each StaffList record
  • StaffList can be placed into content editor using the shortcode [stafflist]
  • Multiple StaffLists are supported in a single page and are customizable by shortcode attribute (e.g.: [stafflist subset=”department:marketing”])


  • The backend directory manager, for adding or modifying records individually
  • The backend directory manager, for importing a full directory list from CSV
  • The backend directory manager, for choosing and ordering your columns
  • The contact card displays additional information about each contact record
  • Example of a directory search


  1. Install StaffList either via the plugin directory, or by uploading the files to your server (in the /wp-content/plugins/ directory).
  2. Activate the plugin.
  3. Create a staff record (or as many as you need)
  4. Insert the staff directory into your page using the shortcode [stafflist], or customize with the following shortcode attributes.

Shortcode Attributes

  • [stafflist] include all records with default rows per page
  • [stafflist rows=50] include all records with specified 50 rows per page
  • [stafflist subset=”department:marketing”] include only records that have “marketing” in the standard department column
  • [stafflist subset=”state:michigan”] include only records that have “michigan” in the non-standard state column
  • [stafflist subset=”building:a|b”] include only records that have “a” or “b” in the non-standard building column
  • [stafflist on=”enter”] perform the search when the enter key is pressed, instead of while typing (default)


Are there any new features planned?

Yes. We plan to add a feature to use infinite scroll instead of page numbers.

Can i propose a feature?

If you wish. Sure.


Excellent customer service!

I had an issue with import, and Mike answered me very quickly and fixed the issue with my spreadsheet. This is the kind of customer service I look for in a product!

Great Plugin

The plug-in is simple yet exactly what I need to manage my user directory. Quick results for search and the addition of multiple word search is a plus. Also, support has been very responsive to concerns and questions. I recommend this plug-in.

Great phonebook

This phonebook plugin is easy to use and brings a lot of cool features to the classic phonebook.

Thanks for that

Read all 12 reviews

Contributors & Developers

“StaffList” is open source software. The following people have contributed to this plugin.


Translate “StaffList” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • Changed sanitize on admin tools for searching foreign characters, per @pojeck (thank you).
  • Tested with WordPress core 5.0.


  • Added an option to toggle conforming imported data from variable encoding to UTF8 (“Clean”);


  • Added support for importing staff links (depicted as an icon) per request by @pojeck (thank you);
  • Links can be used by import a spreadsheet containing a column called “url”, “profile”, or “link”;
  • This not treated as a “standard” column, like the others, as it will require flushing WP database to rebuild;


  • Added a hyperlink to phone numbers (tel:xxx)


  • Fixed the subset query to allow for spaces. For example: [stafflist subset=”school:High School”];


  • Added a text scrubber to attempt to conform imported text to UTF8 (clean);


  • Made localized object keys more unique to prevent plugin conflicts;


  • Added multiple word search;


  • Increased max custom columns from 10 to 15 per request by @cetaceancousins;
  • Added export (to CSV/XLSx) of backend sort/search (or all) per request by @kaypohl;


  • Search queries now parameterized and phone added to searched columns;


  • Checks roles & capabilities on init;


  • Reorganized admin interface to put full directory first; Collapsible instructions panel; Add an individual staff record form now includes non-standard columns;


  • Fixed a bug that cleans and resets data-tables upon activation.


  • Updated pager for administrators.


  • StaffList now supports .xls/x import format, courtesy of PHPExcel Lib and recommendations by virgikins and gustavoo (thank you).


  • Modified CSV interpretation to support broadest range of UTf8 characters, per request by user virgikins and gustavoo (thank you).


  • Added shortcode to set search action on ‘type’, on ‘enter’, or on both (default), per request by user virgikins (thank you).


  • Defined a new role/capability for StaffList Editors, per request by user valdemaras (thank you).


  • Changed the INSERT from $wpdb->Insert to $wpdb->Query with prepared query to fix a bug brought up by blastiu17 (thank you).


  • Introducing subsets! StaffList now gives users control over which records are included in each instance of the directory using simple shortcode attributes. Multiple StaffLists can also be added in a single WordPress page.


  • Fixed an issue with sorting by custom columns; per pawlaz (thank you).


  • Changed PHP4-style constructor to PHP7; per recommendation by NetzzJD (thank you).


  • New admin feature to search the full directory; per recommendation by gustavoo (thank you).


  • Replaced mysql_real_escape_string(); per recommendation by encweb (thank you).
  • Added white-space: nowrap; per recommendation by digitlbill (thank you).


  • Major release: This version allows admins to order columns by preference, and choose which will be visible in the StaffList directory (versus those in the contact card). All columns are searched, and there are now upto 10 custom columns in addition to the five standard columns. Please be advised that this version does require a rebuild of the database tables, and will clean out any directory data you currently have stored.


  • Bug Fix: Updated ajax_object to use ajaxurl


  • New release now supports CSV import to append or replace your staff directory
  • More intuitive front-end sorting by First Name, Last Name, Department and Email Address
  • Better responsive style for narrower content areas
  • Added support for up to 9 custom columns (e.g.: Title, Building, Room) that are also searchable
  • Contact card now has hover to show additional columns


  • Minor change to allow multiple stafflist instances per page (for responsive view, perhaps). Testified/Verified Compatibility with WordPress 4.4.1


  • Testified/Verified Compatibility with WordPress 4.3


  • Update to fix interference with paging styles from some themes.


  • Testified/Verified Compatibility with WordPress 4.2.2


  • Added donate link 😉


  • Added new plugin icons.


  • StaffList now in official release.


  • Fixed issue with users pressing enter on a realtime search.


  • Adjusted pager to allow for user config of # records/page.
  • define(‘RECORDS_PER_PAGE’, 25); //stafflist.php


  • Improved styles.


  • Improved styles.


  • Added a banner image.


  • Added a new screenshot to show the regex search results


  • Plugin-out only in beta, currently. Standby for official release.