a plugin may be you answer
https://www.flippercode.com/product/wp-user-avatar/ (Pro Paid Version)
https://en-gb.wordpress.org/plugins/wp-user-avatar/ (free Version)
This will still take some manual addition of attaching photo to user but it means you can bypass the gravatar route if you dont want to get everyone to signup to https://en.gravatar.com/ which many user may not want to do.
I have no affiliation with these plugins but have used the free version for a similar task to yours
Related Posts:
- Registering Class methods as hook callbacks
- When does WordPress.org notify sites of new version?
- Get a button for in the Editor
- wordpress get meta value by meta key
- How to create gutenberg block using REST API independently or as headless way?
- How can i force Display names to be the same as Usernames?
- Updating WordPress – the best approach (updating wp core, plugins and db)
- Code markup plugin like the .wordpress.com blogs offer?
- Set active theme via URL
- WooCommerce Always Include Shipping Information in Checkout [closed]
- Bad Request (Invalid Hostname) on working server, database problem
- Plugin Not Working, But Only On GoDaddy Hosted site
- Long running action from plugin
- How to get the current plugin name?
- Errors while using ajax from external wordpress page
- List of plugin updates in admin bar
- Custom field in TWIG template – Advanced custom fields plugin
- Peer Review Plugin for Posts? [closed]
- Server side validation for Contact Form 7 [closed]
- Bulk Image Uploader to create new post from each image [closed]
- How can I implement a notification system in wordpress?
- Internationalization: Not loading plugin translated text
- Gravatar images are not fetched in Ultimate Member plugin
- Building an email signup form. Where should the information be saved in the DB?
- How do action and filter hooks understand where to look for the core function that we hooked our function to them
- Bootstrap Drop Down menu is not working
- Plugin Code ONLY on Post Edit Page
- qTranslate conflicts with SEO-plugins [closed]
- Multi language site [closed]
- Ajax fail and get 504 error
- Want to Show Sub categories under Categories section using Woo Commerce [closed]
- How to customize the grid layout in reactive pro wordpress plugin [closed]
- How to run subversion and staging environments when running WordPress
- Subdomains with almost the same content
- WordPress page and plugin list using sql query
- What does making sure “that your theme is WordPress header and footer tag enabled” mean?
- check if a file in a plugin folder exists from a locale installation
- Redirect to another page using contact form 7? [closed]
- WooCommerce: Disable Taxation for Specific Address [closed]
- Move plugin-settings to ‘Settings’-menu in the admin
- Installing wordpress on a subdomain of an already existing static website
- Separate database for a wordpress plugin
- Slashes stripped in ACF
- How do I add some javascript validation to the admin interface form’s onsubmit?
- Login problem after installing my written plugin [closed]
- Can deactivating a plugin sometimes “reset” settings within that plugin?
- remove all submenus from plugin
- Hook for page Request?
- How to do database for download stats?
- Comment IP Plugin – Fixing onfocus=’this.select()’
- Plugin Admin Menu Boiler Plate
- WordPress permissions error with admin account
- How to render a template file using shortcode inside a plugin
- How to add slides (images) to bxslider?
- Delete data from custom table when deleting a post
- Displaying number of drafts in Posts section of admin sidebar [closed]
- Looking for a PayPal donation plugin similar to JoomDonation [closed]
- Pdf visualiser embedded into wordpress website
- admin bar disappears completely in 2010 theme
- WP Insert Post If user refreshes override new post
- Show views count for pop up post
- How to uncheck this automatically from all wordpress posts?
- My wordpress blog posts page is broken
- How to use third-party SendGrid Email Validation API in Gravity Forms?
- Cron job shedules replace?
- Multiple CF7 Forms causing multiple recaptcha requests
- Product slider not showing when clicking on tabs
- Custom plugin issue – Notice: Trying to get property of non-object in
- jquery plugin won’t fire when hamburger class element clicked
- fetch price from different table woocommerce
- WordPress show descriptions under images in gallery
- Cannot save a custom meta field in quick edit
- Permission Issues regarding Plugin updates & FTP transfers
- ACF Query result in a new td (echo)
- Delete user meta based on key value that is an array
- how to send two forms with one click (script ninjaforms id)
- wp_schedule_event function reference
- Meta box or shortcode help
- Users Ultra: Hide asterisk for required registration fields?
- Adding HTML to the search page
- Retrive images from the_content()
- How to retrieve hashtaged tweets from a list of users and post to WordPress
- Using a Cron Job to dynamically populate a field ONCE, and then making the field blank the next time someone visits page
- Custom Function for SEO by Yoast plugin
- Custom feed parameters / Template overriding
- Multi-step, live updating search
- Turning Existing Eccommerce Site into Multi-SIte
- wordpress select multiple options and illegal string offset ‘timeslot’ [closed]
- post_exists() returns a 0 but the 0 doesn’t register [closed]
- Display HTML5 jQuery Audio Player On Front Page
- How Do I Add Product Pictures To Search Results Of A Custom WordPress Theme Using A WooCommerce
- Is it possible to add permalink when using wp_insert_post?
- Custom gutenberg block image preview not working
- Update Plugin of wordpress to specific version
- Can WordPress updates take down site functions?
- How to get custom setting from get_option and pass it in getEntityRecords in gutenberg block?
- When to store store plugin options as a single database record?
- What is the best way to override functions of thirdparty plugins?
- How to move a post in Vacancies so it appears in News/Events?
- Can’t install plugins