Home / Plugins / Image Credit Companion

Freev1.2.2 · updated Jul 27, 2026 · GPL · no Pro version

Image Credit Companion: know where every picture came from, and show it

A free WordPress plugin that stores author, source and license once per image and carries them into every post the picture appears in: as a caption below it, as an overlay on it, or as a sources list under the article. An overview shows which pictures still lack a credit.

An article photo with a credit overlay reading Photo: Anna Lind, CC BY 4.0, Unsplash, beside an image sources panel listing photographer, license and source for each picture in the post

Do you have to credit images?

It depends on the license, and the license is the part nobody remembers six months later. Creative Commons licenses with BY in the name require attribution: the creator, the license, a link to it, and a note if you changed the picture. Leave the credit off and you are outside the license.

Unsplash and Pexels do not require a credit, but both ask for one and hand you a ready-made line. Stock agencies are stricter: editorial images almost always need a credit line naming photographer and agency, and many standard licenses ask for one as well.

Underneath the licenses sits the photographer’s right to be named, which most copyright laws grant whatever the license says. In practice a missing credit is the routine reason for a takedown request or, in some countries, a paid warning letter. Often the image was licensed correctly; the credit just got lost somewhere between download and publish.

That loss is what this plugin prevents. It gives every image in the media library a place for author, source and license, keeps track of where the image is used, and shows the credit wherever the picture is.

It stores and displays attribution. Whether a given license requires a credit, and in which form, is between you and the license; this page is not legal advice.

This is what it looks like

Sample article, sample credits

Sample article · sample credits
yoursite.com/magazine/quiet-mornings
Photo: Anna Lind · CC BY 4.0 · Unsplash

Image sources

  • quiet-mornings-01.jpg — Anna Lind, CC BY 4.0, Unsplash
  • harbor-fog.jpg — Jonas Reuter, CC0, Pexels
  • team-portrait.jpg — Studio Nord, all rights reserved, own upload

The credit on the picture, the sources list under the article, and the import box from the editor sidebar. Every control here is a real setting in the plugin.

How it works

Enter the credit once, where the image lives

Author, source URL, license name, license URL and a note are fields on the attachment itself, editable in the media modal, in the editor sidebar while you write, or in the admin list. Quick Attribution Import takes the credit line Unsplash or Pexels hand you, or any HTML snippet, and fills the fields on one click. Defaults for author, source and license type can apply to every new upload.

Attachment details in the WordPress media library with Quick Attribution Import set to Unsplash, a pasted credit snippet, a Parse and Fill Fields button, and the author, source URL, license name and license URL fields filled in.
Paste the line Unsplash gives you, press one button, four fields are filled.

Every post knows which pictures it uses

On every save the post is scanned for Image, Gallery, Cover and Media & Text blocks, classic editor markup and inline images in paragraphs, and the usage lands in one table. Scan All Posts catches up on everything already published. The overview counts images, posts, missing authors and missing licenses, filters by what is missing, and sets author and license for a whole selection at once.

Admin list titled All Images with counters for total images, posts with images, missing author, missing license and recent usage, above a table of images whose empty author, source and license cells are marked Missing.
Two pictures are done, fourteen still need an author and a license.

Show the credit where the reader looks

A caption under the picture or an overlay on it, bottom left, center or right, with your own prefix, background color, opacity and edge distance, on one line or stacked. Featured images and content images switch on separately, and for featured images you choose the views: single posts, pages, blog index, archives, search. Cover blocks get the overlay inside the cover, Elementor featured-image widgets are covered, and any template can call [imagcrco_image_credit].

Or list the sources, per post or for the whole site

The Image Credit Companion block, the [imagcrco_image_sources] shortcode or an automatic footer under posts and pages print the sources as bullets, numbers, inline text or a table, with your separator and prefix. With scope="site" the same list becomes a paginated credits page for the whole site, the kind you link from the legal notice. The templates can be overridden in the theme, and three filters hook the markup.

Front end of a WordPress post: a photo followed by a bulleted list naming, for each picture, the photographer, the file name as a link, the license as a link, a source link and a short note.
Under the post: photographer, file, license and source, each a link.
Front-end page titled Image Sources with a table listing each image with thumbnail, title, author, license, a View Source link and the post it is used in.
One page for the whole site, ready to link from the legal notice.

What it does not do

This is the part most plugin pages leave out.

It does not know the license by itself. Author, source and license are what you enter or paste. It queries no rights database and runs no reverse image search.

It only sees images that go through the media library. Hotlinked pictures, CSS backgrounds outside Cover blocks and page-builder widgets that bypass WordPress attachments are not tracked. Elementor featured-image widgets are the exception, since 1.2.1.

It does not read the credit inside the file. IPTC and EXIF fields stay where they are. What the plugin shows is what was typed or pasted into its own fields.

It does not touch the image file. No watermark, no pixels changed. The credit is HTML next to or over the picture, and a theme can style it.

It sends nothing anywhere. No external request, no telemetry. Metadata lives as attachment meta, usage in one table, both on your server.

It is not legal advice. It cannot tell you whether a license requires a credit or in which form. It makes sure the credit you owe is stored once and shown everywhere.

Why not just write the credit into the caption?

Because a caption belongs to one placement, not to the image. Use the same photo in three posts and you write three captions, and the day someone edits the post, the credit goes with the paragraph it was typed into.

The media library has no field for a photographer, a license or a source, and no view that shows which picture lacks them. So the information ends up in a spreadsheet, in file names, or nowhere.

Storing it on the attachment turns that around. The credit follows the picture into every post, the overview lists what is missing, and one shortcode prints every source on the site. The caption stays free for what a caption is for.

Set up in three steps

01

Install it

Plugins, Add New, search for Image Credit Companion, install, activate. No account and no license key.

02

Set the defaults

Image Sources, Settings: a default author, source and license type for new uploads if most pictures share one, whether the credit shows on the image, under the post, or both, and which fields count as required.

03

Credit the pictures

In the editor sidebar or the media modal as you work. For the existing library, run Scan All Posts, filter the overview by missing fields, and set author and license for the selection in one go.

Free forever, and why

This plugin is free and stays free. There is no Pro tier and none is planned. It exists because WordPress has no field for a photographer or a license, and the credit a license asks for should not depend on someone remembering it months later.

If it saved you an afternoon, the useful things are a rating on wordpress.org, a post in the support forum when something is off, or a hand with the translation.

Screenshots

Plugin settings with a switch to apply default values to new uploads, the automatic footer with its post-type scope, and the default output style set to unordered list.
Defaults for new uploads, and whether the sources list appears under every post by itself.
Plugin settings with separator and prefix label fields, switches to link attachment titles and hide images without attribution, required-field options for author and license, and a keep data on uninstall option.
Your separator and prefix, which fields count as required, and what uninstall leaves behind.

Frequently asked questions

How do I add a photo credit in WordPress?

Install the plugin, then enter author, source and license in the media modal, in the editor sidebar or in bulk under Image Sources, All Images. The credit then shows as a caption, an overlay or a sources list, as you configured it.

Do I have to type every credit by hand?

No. Copy the attribution line from Unsplash or Pexels, or any HTML credit snippet, paste it into Quick Attribution Import and press Parse & Fill Fields. Defaults for author, source and license type can apply to every new upload.

Which images does it find?

Image, Gallery, Cover and Media & Text blocks, classic editor images and inline images in paragraphs. Detection runs on every save; Scan All Posts covers older content.

Can the credit sit on the image itself?

Yes, since 1.2.0: as a caption below or as an overlay bottom left, center or right, with your prefix, background color, opacity and edge distance, on one line or stacked, separately for featured and content images.

Does it work with the Classic Editor, Elementor and Cover blocks?

Classic editor content is scanned like blocks. Featured images shown as Cover backgrounds get the credit as an overlay inside the cover. Elementor featured-image widgets are covered, including theme-specific ones and CSS-background layouts; images that bypass the media library are not seen.

Can I list every image of the site on one page?

Yes. The [imagcrco_image_sources] shortcode with scope="site" prints a paginated list of every tracked image, as bullets, numbers, inline text or a table. Many sites link it from the legal notice.

Can I bulk-edit an existing media library?

Yes. Filter All Images by missing author or license, select the pictures and set author and license for the whole selection at once.

Can I control the markup?

Choose bullets, numbers, inline or table, set separator and prefix, pick a light, dark, inherited or custom color scheme, override the list templates in your theme, or hook the eiam_image_credit_html and eiam_auto_injection_html filters.

Where is the data stored, and what happens on uninstall?

Author, source, license and note are attachment meta; usage lives in one custom table. Uninstalling removes both plus the settings, unless Keep Data on Uninstall is ticked.

Does it send anything to the author or a third party?

No. No external request, no telemetry, no remote fonts. Everything is served from your installation.

Is there a Pro version?

No, and none is planned. Every feature is in the free plugin.

Changelog

1.2.2

Jul 27, 2026: Elementor detection made generic: any widget that shows the featured image of the current post gets the credit, CSS-background layouts included; a fallback for themes that call wp_get_attachment_image() directly; sliders and galleries are left alone.

1.2.1

Jul 27, 2026: the Elementor featured-image widget, checkboxes for where the featured credit appears, the [imagcrco_image_credit] shortcode, the overlay inside Cover blocks, theme-safe wrappers.

1.2.0

Jul 27, 2026: credit on the image: caption or overlay, prefix, background color, opacity and edge distance, single line or stacked, the eiam_image_credit_html filter; fixes for attribute-less shortcodes and the per_page attribute.

1.1.0

Jun 24, 2026: the editor sidebar loads again, bulk editing saves, dismissible notices, image lookup through attachment_url_to_postid(), one scan per save, block registered from block.json, debug leftovers removed, WordPress 6.0 minimum.

1.0.1

Apr 29, 2026: custom colors save, separator and prefix work, license type applied to new uploads, color scheme for every output style, Plugin Check clean.

1.0.0

Nov 4, 2025: first release: detection on save, editor sidebar, admin overview with bulk editing, shortcodes and block, templates, REST API, settings.

Full changelog on WordPress.org

More from desk9

Cookie Banner & Content Blocker YouTube, Maps and Analytics stay inert until the visitor says yes. The other thing a site owes its readers.

AI Content Disclosure One quiet notice that says where AI helped, before readers wonder.

All desk9 plugins Ten of them, maintained monthly, seven free.

Free forever. No Pro, no nag screens.

Every feature is in the free version. Updates arrive through WordPress, no account and no license key.

At a glance

Version1.2.2
Last updateJul 27, 2026
Requires WP6.0+
Tested up to7.0.7
PHP7.4+
LicenseGPL

Why it is free

Every feature is in the free plugin, and it stays that way. If it saves you time, a review on wordpress.org is the best way to say thanks.