Why Ultimate Member Directory Shows No Members (or Only Some) – Full Fix Guide

Members exist in Users → All Users, but the front-end directory shows nobody — or only half of them. That is one of the most common Ultimate Member support cases. Official docs list privacy and filter options; they do not explain why selecting a role returns zero results, why admins see everyone while members see one card, or when a stale custom usermeta table is the real culprit.

This guide is a practical troubleshooting flow based on Ultimate Member’s source behavior and recurring live support cases (sites where “User Roles to Display,” Profile Completeness, ForumWP roles, Stripe membership roles, staging copies, and custom table indexes all caused missing or empty directories).

Last verified against Ultimate Member 2.12.x.

Quick navigation:


Match your symptom

What you seeMost likely causes
Completely blank — no directory UI at allDirectory privacy blocks the viewer; Enable Members Directory off; unpublished directory; wrong/missing shortcode; outdated theme template after update
Directory UI + “no members” / 0 resultsUser Roles to Display filter; Admin filtering; must-search; photo/completeness filters; unapproved users; private / hidden profiles; stale custom usermeta table
Only some members appear (backend has more than frontend)Roles to Display too narrow; default Country/role filters; ForumWP/bbPress/Stripe roles mixed in; custom table out of sync; exclude-users list; private profiles
Admin sees all; regular user sees 1 or noneViewer role “Can view these user roles only”; private profiles (admins can see them, members cannot)
Selecting a role → empty; selecting none → everyoneBroken/stale role index in custom usermeta table; wrong role key; pending approval on that role

Important wording: On User Roles to Display, leaving every role unchecked means “show all roles.” Checking specific roles means “show only these.” Support tickets often get this backwards.


Fast checklist (do this first)

Run this before deep debugging. It resolves a large share of tickets.

  1. Users → All Users — members are Approved (not Awaiting Email / Awaiting Admin Review / Inactive).
  2. Ultimate Member → Member Directories → Edit
    • User Roles to Display — uncheck all (show everyone) while testing.
    • Only show members who have uploaded a profile photo / cover — off while testing.
    • Only show specific users / Exclude specific users — empty while testing.
    • Admin filtering — empty (no forced Country = United States, etc.).
    • Show results only after search/filtration — off while testing.
    • Profile Completeness / Verified filters (if those extensions exist) — off while testing.
  3. Settings → General → AccountAllow users to hide their profiles from directory = off.
  4. User Roles → Edit (for each member role you care about):
    • Can view other member profiles? = on
    • Can view these user roles only = empty (or explicitly includes the roles you want listed)
    • Can make their profile private? = off while testing
  5. Settings → Advanced → Features — if Enable custom table for usermeta is on: turn it off, save, turn it on, save, click Run to rebuild. See UM meta table docs.
  6. ☐ Shortcode on the page is [ultimatemember form_id="X"] copied from the Shortcode column (not an old [ultimatemember_directory id="X"] from a tutorial).
  7. ☐ Clear page/server cache; test in a private window as guest and as a normal member (not only as admin).

If the directory suddenly shows everyone after step 2, your problem was a filter, not a broken plugin. Re-enable filters one at a time.


User Roles to Display — the #1 “only some / none” cause

Path: Ultimate Member → Member Directories → Edit → General → User Roles to Display.

  • All unchecked = show members of every role.
  • Specific roles checked = show only those roles.

Real-world pattern: A site had Members, Premium Member, ForumWP Participant, and bbPress Participant all checked. New signups with a different or missing UM role never appeared. Unchecking all roles (or aligning roles with Stripe/ForumWP assignments) restored the full list. Another site could only show everyone when no role was selected; selecting um_membre returned the “no members match” message — a classic symptom of a bad role filter + custom table index, not “empty membership.”

What to do:

  1. Test with all roles unchecked.
  2. Confirm each user has the intended Ultimate Member role (Users → Edit user → Ultimate Member role), not only a WordPress role.
  3. Check Role IDs under Ultimate Member → User Roles (custom roles look like um_member, um_premium-member, um_membre).
  4. If selecting the correct role still returns zero, rebuild the custom usermeta table (next section), then recreate the directory if needed.

Viewer role: “Can view these user roles only”

This setting is on the person looking at the directory, not on the directory card.

Path: Ultimate Member → User Roles → Edit Role → Profile Access.

  • Can view other member profiles? must be on for that role.
  • Can view these user roles only — if filled, that viewer only sees those roles in directories/profiles.

Real-world pattern: Administrator sees six dealers; a “Free Dealer” account sees one (themselves) or none. The Free Dealer role was restricted to viewing a subset of roles. Fix: clear “Can view these user roles only,” or explicitly include every role that should appear (including Administrator if you want admins listed).

Also assign a real UM role to test accounts. “No role for Ultimate Member” often produces a login/lock message or an empty directory for that user.


Private profiles & hide from directory

Two separate mechanisms hide people without deleting them:

  1. Can make their profile private? (per role) — private profiles are hidden from guests and normal members; admins still see them. That matches “works for me as admin” tickets.
  2. Allow users to hide their profiles from directory (Settings → General → Account) — members can opt out under Account → Privacy.

Staging tip: After copying a live site, many profiles may already be private. Turn off “Can make their profile private?” while testing, or grant important roles Can view/access private profiles?.


Custom usermeta table rebuild (when filters “should” work)

Path: Ultimate Member → Settings → Advanced → Features → Enable custom table for usermeta.

When this is on, the directory queries a dedicated table. If that table is stale (imports, role renames, ForumWP/Stripe role changes, staging copy), you get:

  • 0 users when a role is selected
  • Only older members, not new signups
  • Search returning empty for fields that clearly have data

Fix used repeatedly in support:

  1. Uncheck Enable custom table for usermeta → Save.
  2. Check it again → Save.
  3. Click Run when UM offers to rebuild/update the table.
  4. Hard-refresh the Members page.

Forum confirmation: a public directory set to “Anyone” still returned AJAX total_users: 0 for guests until this rebuild. Ticket pattern: new members appeared only after older ones “came back” following settings changes — classic index lag.


Admin filtering & default search filters

Path: directory edit screen → Admin filtering (forced filters always applied).

Example that silently drops half the list: Country = United States while many members only filled shipping_country or left Country empty.

Also check:

  • Show results only after search/filtration — directory looks empty until someone searches.
  • Search include fields pointing at the wrong meta key (e.g. searching “State” against shipping_state while profiles store data elsewhere) — names work, states return “no results.”

Clear Admin filtering while testing. Re-add one filter at a time.


Completely blank shortcode (privacy / publish / Members Directory)

If there is no directory shell at all, the shortcode returned empty HTML before querying users.

CheckWhere
Who can see this member directoryDefault install is Members only — guests get a blank page with no message. Use Anyone for a public directory.
Enable Members DirectorySettings → General → Users — must be on
Directory PublishedDraft/private directories render nothing
Correct shortcode[ultimatemember form_id="123"] from the Shortcode column
Members page assignedSettings → Pages → Members page (needed for searchform + some tooling)

See also: Ultimate Member Shortcodes reference.


When recreating the directory is the right fix

If filters are cleared, the custom table was rebuilt, and roles look correct — but the old directory still shows a partial list — create a new Member Directory:

  1. Ultimate Member → Member Directories → Add New.
  2. Leave Roles to Display unchecked while testing; copy other display settings you need.
  3. Publish.
  4. Copy the new shortcode ([ultimatemember form_id="NEW_ID"]).
  5. Replace the shortcode on the Members page (or use a temporary test page first).

Real-world pattern: After weeks of partial visibility, a fresh directory on a new page showed all current members immediately. The old directory object retained bad filter/index state. Keep the old one unpublished until you confirm the new one.

Docs: Displaying member directories, Directory settings.


Search works for last name, not state/city

That usually means the search include list points at the wrong field.

  1. Edit the directory → Search Options → fields included in search.
  2. Confirm the meta key matches what members actually save (e.g. shipping_state vs a custom “State” field).
  3. Confirm members have that field filled — empty meta never matches.
  4. Rebuild the custom usermeta table if search still misses known values.

Blank after updating Ultimate Member (outdated templates)

If the directory disappeared right after a core update (notably 2.11.1+), check theme overrides:

Ultimate Member → Settings → Advanced → Override Templates → Re-check templates

Outdated files often include members.php, members-grid.php, members-list.php in your child theme under ultimate-member/.

Update them so directory hash usage matches current core, for example:

$unique_hash = UM()->member_directory()->get_directory_hash( $args['form_id'] );

Or temporarily remove the overrides to confirm the default templates work. Extension templates (User Locations map, etc.) may need matching updates.


Staging sites and migrations

Directories that work on live but show “no members who match” on staging are often incomplete copies:

  • Users copied without account status / UM role meta
  • Custom usermeta table not rebuilt on the new environment
  • Private-profile flags carried over
  • Admin filtering or “must have photo” still on

Copy full DB + files, then run the fast checklist above on staging. License keys do not control whether the directory renders.


Directory spinner / admin sees list, guests don’t (AJAX)

The list loads via admin-ajax.php. If Network tab shows redirects, HTML login pages, or blocked requests for guests:

  • Allow front-end access to /wp-admin/admin-ajax.php in firewalls/security plugins.
  • Exclude the Members page from full-page cache.
  • Conflict-test security, cache, and optimization plugins.

Extensions that add extra “invisible” filters

If installed, temporarily disable these filters on the directory while testing:

  • Profile Completeness — “only completed profiles”
  • Verified Users — “only verified”
  • User Locations — location/radius requirements; map/directory JS conflicts after updates

Heavy stacks (Groups, ForumWP, Stripe role switching, WooCommerce) often change roles after signup. New users can land in a role your directory does not include until payment or forum sync finishes.


Full ordered checklist

  1. ☐ Symptom: blank UI vs 0 results vs partial list vs admin-only visibility
  2. ☐ Approved status for missing users
  3. ☐ Roles to Display unchecked (test), then re-add the correct UM role keys
  4. ☐ Viewer role can view other profiles / allowed roles
  5. ☐ Private profile + hide-from-directory off while testing
  6. ☐ Clear Admin filtering, photo filters, completeness/verified filters, exclude list
  7. ☐ Rebuild custom usermeta table (off → on → Run)
  8. ☐ Correct [ultimatemember form_id="X"]; Members Directory enabled; directory Published
  9. ☐ Directory privacy matches audience (Anyone vs Members only)
  10. ☐ Clear caches; test as non-admin
  11. ☐ Outdated template re-check after updates
  12. ☐ Recreate directory + replace shortcode if the old one stays stuck
  13. ☐ Conflict test (default theme, UM only) if still broken

Scroll to Top