User Profiles block (lh-user-profiles/profiles)
Added in 1.1.0, and since 1.2.0 the only way to list people. A dynamic, server-rendered block that lists chosen people in the order you pick them. For each person it shows an h3 with their display name, their avatar (150px, linked to their author archive), optional contact lines, and their bio.
Using it
Add the block, then open the settings sidebar. Under People, type at least two letters of a name and pick from the suggestions; people appear in the order you add them. Each person shows as “Name (#ID)” so two people with the same name can be told apart. Under Contact details, turn on Show email and/or Show mobile. Both are off by default, because contact details are visible to everyone who can view the page.
| Attribute | Type | Default | Notes |
|---|---|---|---|
userIds | array of integers | [] | People to show, in display order. Only users of the current site are shown. |
fields | array of email / phone | [] | Contact lines to show. |
Supports wide/full alignment and margin/padding. The block renders nothing when no people are chosen.
Markup
Since 1.1.1, each person is output as an h3 followed by div.lh-user-profiles-person, which contains the avatar link (the image carries alignleft), a p.lh-user-profiles-contact when any contact line is shown, and the bio paragraphs. The whole list sits inside the block wrapper, div.wp-block-lh-user-profiles-profiles.
Contact details
Email comes from the user meta lh_users_secondary_email, shown only if it is a valid address, and is lightly obfuscated against scrapers. Mobile comes from the user meta lh_profile-phone (stored in E.164, e.g. +61412345678) and links as tel:. Australian mobiles display as 0412 345 678, Australian landlines as (03) 1234 5678, and anything else in international form. Override the display with the lh_user_profiles_format_phone filter.
Editor search route
GET /wp-json/lh-user-profiles/v1/users backs the people picker. Pass search (matches display name, login and nicename; up to 20 results) or include (comma-separated IDs, returned in that order). It returns only id and name, for users of the current site, and requires the edit_others_posts capability (filterable via lh_user_profiles_return_editor_capability). It exists because core’s /wp/v2/users only lists people who have published posts unless the editor can list users.