UPDATE
I did not test this method, but it is not very old. It adds custom meta information to the caption section of the image, which can then be styled as needed. Again, I did not try the method, and I am not a coder, but from reading through the tutorial, it sounds like it fits your needs.
Add Custom Meta Fields to Media Attachments in WordPress
Original Answer
I think this article from wpbeginner might be exactly what you need. I have used this exact method before.
How to Add Additional Fields to the WordPress Media Uploader
Related Posts:
- How do I change/modify the_post_thumbnail(); html output?
- the_post_thumbnail() based on the Post ID
- How can update custom meta for all posts
- How to make thumbnail image fit into a div where image dimentions are completely different?
- Randomly Assign an Image’s Alt Text Based on Data From Post
- Set the background to a default image if there isn’t a specified “featured image”
- height should be set to auto to avoid pixelation in the post thumbnail function
- Else/If Statement to Display Photo Descriptions
- Fallback image URL if no featured image exists via a shortcode function
- Unable to Call More than One Meta Box Output
- Hide a div when a custom field is empty
- Get the alt text of the image in a array
- How to check post meta isset or not empty during publish/save post?
- Add Featured Image to Existing Post
- How to add and subtract user meta values after post meta update
- not outputting medium size image URL
- Delete post meta by serialized meta value
- How to put 2 php codes in functions.php without site crashing
- How to link all featured images to custom url in single.php for only non-logged-in users?
- insert thumbnail image from php script
- Can’t put a hyperlink on Featured Post’s Image
- Postmeta not saving
- Overwriting a Shortcode
- get_post_meta no longer working
- How to display the date under the post title?
- add if statement to the featured image
- Remove default Image Sizes
- Add attribute to featured image with filter (wp_get_attachment_image_attributes)
- Generate and upload screenshot as featured image for user-submitted post
- How do I get a function to work in single.php
- Enforcing password complexity
- Customize default settings on new sites on multisite
- Check if a menu is empty?
- Dynamically change feature image in customiser
- Creating wordpress user registration form
- category not display in word press grammatically
- Setting up the child theme so as to enable right-to-left WordPress?
- Design view breaking on Pages
- Getting a fatal error while updating
- Hooking new functions to actions + passing parameters
- How do I get images (with a thumbnail preview) to show in search results?
- my function doesn’t return my post from today
- How to break down importing of feeds
- how to increase custom post value by one most efficiently?
- Changing Woocommerce flat rate every nth number of items
- Convert all images to PNG on file upload
- If search results empty then execute certain code
- Get Current User Id Inside a Loop Returns 0 For a Shortcode
- How to stop featured image thumbnail [set as background image] on blog index page just repeating same image across all posts
- Way to querry data (tags) from a wordpress database?
- Using fwrite() and “a” appends multiple times instead of once
- Where in PHP do I move title and meta (date) to bottom of each blog section?
- How does WordPress insert Paragraphs in posts
- How do I add custom bulk actions to multiple custom post types?
- Making BuddyPress Activity Stream (Post Type) Featured Images Clickable [closed]
- Sort custom meta column by other meta value
- what is the best practice to add new field to an api route
- Keyword checking in Gravity Forms
- how to refresh div on template part?
- Child page menu in sidebar
- Title Case WordPress Menu Items
- Alter required message using comment form api
- Three Questions with Twenty Eleven theme
- Why does this update_post_meta function not delete the custom field itself?
- WordPress function and string as variable?
- Detecting if parent page has gallery
- Help with WordPress function inside a shortcode
- WP All Import / Update stock quantity from multiple XML files
- Removing “Powered by” footer using child theme PHP [closed]
- How to style injected code in header section?
- Randomize Color Scheme Selection in Theme
- Include a file that has a function in it
- Execute Jquery when a specific page in my plugin is loading
- SQL error with custom query
- I can’t set image ad fatured programatically
- Products listing check if meta checkbox is checked
- How to preload header logo image in WordPress? like what’s the code and where do I put it?
- Contain multiple page templates in one PHP custom template file in WordPress?
- How do I reopen the (Popup Maker) after entering the correct password for a password protected page?
- Display metabox galleries on specific page template in admin editor
- display condition based on post term and status
- Custom plugin: how do I call a PHP file if settings option is set to true?
- How to change order inside foreach using wp_enqueue_script?
- How do I get the value of a current user’s custom field?
- Adding extra data to shortcode attributes and pass it to JS with wp_localize_script
- Having trouble with customizing blog posts on the home page
- Allow Comments by Default for Multiple Post Types
- Remove item from post_meta array via AJAX
- How to get User Avatar Image with link to Author and User name in Html Title tag?
- WP HTTP API call response
- Fatal error when using array_diff() function inside of wp_update_nav_menu hook?
- How to get all users by user_login as a json_encode array?
- Private messaging – Getting and displaying the avatar/url of a message recipient
- Fix My Custom Function: Remove Automatic
- Hide the content before the more tag in the “single page”
- WP Debug enabled Undefined index error in a widget
- how to loop through blog posts in php
- Dynamic Email Handler with ‘header (“Location: …’
- change title of page dynamically
- Custom plugin doesn’t show in admin menu – when code added, displays an empty page