Description
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, button text, and a custom CSS field.
- 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.
Blocks
This plugin provides 1 block.
- Avatarly Lets the logged-in user upload or remove their local avatar.
Installation
- Upload the
avatarlyfolder to/wp-content/plugins/, or install it through the Plugins screen directly. - Activate the plugin through the “Plugins” screen in WordPress.
- Visit Settings Avatarly to configure permissions and styling.
- Add the
[avatarly]shortcode to a page, add the “Avatarly (Legacy)” widget to a sidebar, or insert the “Avatarly” block wherever logged-in users need to manage their avatar.
FAQ
-
Does this replace Gravatar entirely?
-
No, by default it layers on top: if a user hasn’t uploaded a local avatar, WordPress falls back to Gravatar (or your configured default) as usual. You can disable that fallback in Settings Avatarly General & Permissions.
-
What image types are supported?
-
JPG, PNG, GIF, and WebP.
-
Can I choose which part of my photo is used?
-
Yes. When you select or drop an image, a crop popup lets you drag to reposition and zoom before saving. Selecting “Skip” uploads the image with an automatic center crop instead.
-
Can I restrict who is allowed to upload an avatar?
-
Yes. Under Settings Avatarly General & Permissions you can require the
upload_filescapability and/or restrict uploads to specific roles. -
Where are avatar files stored?
-
In
wp-content/uploads/avatarly/, following WordPress’s standard year/month upload structure. -
What happens to avatar files if I delete a user?
-
By default nothing is deleted automatically. You can enable automatic cleanup on user deletion in the General & Permissions tab.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Avatarly” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Avatarly” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.1
- Removed the Custom CSS settings field. Per WordPress.org plugin guidelines, plugins may not let users save arbitrary custom CSS/JS/PHP; all supported styling (size, shape, border, shadow, accent color) is already exposed as dedicated controls in Settings Avatarly Styling.
1.0.0
- Initial release, including a crop/reposition popup (drag to pan, zoom slider, skippable) for the front-end upload flow.