Avatarly
·
No Gravatar account required: let users upload and manage a local custom avatar via their profile, a shortcode, a widget, or a Gutenberg block.
Avatarly adds a local, self-hosted avatar system to WordPress. Users can upload a profile picture directly on your site instead of relying on Gravatar, and site owners get full control over who’s allowed to upload, how avatars look, and where uploads are permitted.
Three ways to let users manage their avatar on the front end:
- Shortcode —
[avatarly] - Widget — add the “Avatarly (Legacy)” widget to any sidebar (classic, non-block themes)
- Gutenberg block — search for “Avatarly” in the block inserter
Avatars can also always be managed from the standard WordPress Edit Profile screen.
Key features
- Local avatar storage — no data sent to Gravatar unless you choose to keep it as a fallback.
- Drag-and-drop / AJAX upload on the front end (progressively enhanced; falls back to a normal form for no-JS visitors).
- Built-in crop and reposition popup: drag to pan and use the zoom slider to frame the shot before saving, or skip it to use the automatic center crop.
- Strict upload validation: real MIME/extension checks, image verification, and file-size limits — not just a filename blacklist.
- Automatic EXIF/GPS metadata stripping from uploaded images.
- Fine-grained permissions: restrict uploads by capability and/or by specific roles.
- A dedicated Styling tab: size, shape (circle/rounded/square), border, shadow, accent color, and button text.
- Optional automatic cleanup of avatar files when a user account is deleted.
- Translation ready.
Developer hooks
avatarly_avatar_size(filter) — change the avatar size used when generating a sized copy.avatarly_avatar_data(filter) — filter the final avatar data array.avatarly_avatar_html(filter) — filter the rendered<img>HTML.avatarly_avatar_uploaded(action) — fires after a successful upload.avatarly_avatar_deleted(action) — fires after an avatar is removed.