Image Source Control


Did you ever forget to add the source to an image file in the frontend and the lawyer of the copyright holder knocked on your door?

Image Source Control (ISC) helps to prevent this situation.

github repository

Since I am not able to work on feature requests or fix buxes right now, you can submit them to the github repository.
I will definitely review them there.

Image Sources Lists

You can choose between different image source list types:

  • source as image caption/overlay (not compatible with all themes)
  • source list below the content
  • combined source list of all images

Frontend Features

  • display sources for images in content, galleries, shortcodes and featured images
  • show image source directly in the image (not working with all images and themes)
  • include a list with all images and their sources of the current page/post
  • include a list with all images and their sources with all images or only those included in posts
  • attach lists to automatically or using shortcodes or template functions
  • display image sources on archive pages

Backend Features

  • manage image source within media dashboard
  • mark an image to belong to the uploader
  • lists images with missing sources in the backend
  • warnings, if image source is missing
  • link sources to any url
  • manage, display and link licences


English, German


Find instructions under Other Notes or at the image source control website.


Also have a look at the image source control manual.

Find a list of images with missing sources under Media > Missing sources

automatic image sources

You can choose to display image sources automatically below the post content or as a small overlay above your images. Just visit the settings page of the plugin to enable those options.

manually included image sources on pages/posts

You can add the image source list manually to pages or post via the shortcode [isc_list] in your content editor. You can use [isc_list id="123] to show the list of any post or page.

You can also add the list with the function isc_list() within the loop in your template files. Use isc_list( $post_id ) to show the image source list outside the loop.

You should also check first if the function exists before using it:

list all image sources

You can add a paginated list with ALL attachments and sources to a post or page using the shortcode [isc_list_all]. Use [isc_list_all per_page="25"] to show only a limited number of images per page.

The plugin searches your post content and thumbnail for images (attachments) and lists them, if you included at least the image source or marked it as your own image.


  • display a list with all images of your site and their sources
  • display image source within the image
  • some of the settings to customize how to display image sources
  • added two new fields to media library


This section describes how to install the plugin and get it working.


  1. Upload wg-image-source-control-folder to the /wp-content/plugins/ directory
  2. Activate ISC through the ‘Plugins’ menu in WordPress
  3. Visit Settings > Image Control to set up the plugin


Braucht eigentlich jeder!

Ich kann dieses Plugin sehr empfehlen. Nach einigen Holprigkeiten in meiner Installation zu Beginn, funktioniert es jetzt perfekt. Heutzutage ist es extrem wichtig, dass man alle Bilder auf seiner Seit mit den Bildquellen bzw. Quellenangaben versieht. Man möchte ja nicht von irgendjemand einen Anwalt auf den Hals gejagt bekommen. Nun kann man auf meiner Seite genau die Herkunft aller Bilder nachvollziehen. Braucht eigentlich jeder, dieses Plugin.

Für Bilder-u. Lizenzangaben bestens geeignet

Ein super Plugin, welches vielseitig konfigurierbar ist. Man kann die Quellen-u.Lizenzangeben entweder unterhalb eines Bildes oder als Tabelle auf einer seperaten Seite ausgeben lassen. Das Plugin ist sehr gut dokumentiert. Mein Tipp: Sehr empfehlensert.

It does BREAK your site

Sorry. I have never rated a plugin bad, but Image Source Control breaks your site. The only solution is to delete the plugin folder via FTP. Thank goodness it doesn’t harm the database. Thanks to the author for making this plugin, but it needs some serious bug fixes.

Read all 16 reviews

Contributors & Developers

“Image Source Control” is open source software. The following people have contributed to this plugin.


Translate “Image Source Control” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.



  • load public JavaScript in footer by default
  • used more stable regex

  • fixed align value not being understood correctly

  • fixed missing index issue
  • call parent class in admin class constructor


  • cleanup
  • removed log spam introduced with 1.8.10
  • prevent SQL injection through crafted img src attributes

  • hotfix for php below 5.3


  • don’t list images attached to non-public posts in the full image list, when only visible images should be displayed, thanks to heiglandreas
  • added fallback to read images from galleries
  • added isc_get_image_by_url_query filter
  • fixed image list being empty due to autosave
  • read src from attribute according to dom documentation, thanks to heiglandreas
  • tested with WordPress 4.4 beta 4


  • rather use than error-log query


  • search for image urls regardless of their used protocol (http or https)

1.8.6 | 1.8.7

  • removed duplicate post links on full source list


  • fixed deprecated sanitize_url()


  • [feature] added option to display all images in the full list, not just those visible in posts
  • [fixed] default author text not showing up


  • [fixed] saving pre text for source overlay, thanks to maler.whick


  • [feature] show image sources for changed images
  • [feature] show image sources for images with query parameters


  • [fixed] set default value for new option to prevent error message


  • [feature] display image sources on archive pages (see settings)
  • [feature] use isc_thumbnail_source() to display thumbnail source in templates
  • [feature] added image sources for galleries and other shortcodes
  • updated German translation


  • [fixed] bug on ajax calls preventing the source fields to show up on ajax called pages in the dashboard
  • [fixed] bug on multisite update
  • [optimized] don’t hide setting boxes
  • [optimized] finished moving all publically needed function to its own class


  • [fixed] error message shown when list type settings was empty or unsaved
  • [fixed] source overlay showing if no image source was set for it
  • [optimized] trim source input


  • [fixed] source list function referring to the wrong plugin class


  • [optimized] manage different source display types on top of settings page
  • [optimized] renamed settings page to “Image Sources”
  • [removed] hiding source list elements in the frontend is no longer possible
  • [fixed] show source list not only below posts, but every other post type
  • [fixed] removed screenshots from main plugin files

Important: I tried to move old settings to new ones, but please check your settings and source display after updating.


  • [feature] list image sources at the bottom of posts and pages without coding
  • [feature] debug modus to check the relation between images and image posts


Some major change under the hood. On blogs with a lot of posts and images the activation crashed due to auto index of all meta fields.
If everything works as expected you might not notice a change. There is only a second list on the missing image page.
Read this post to learn more about it.


  • [feature] added function to get single image source from within templates
  • [feature] link the image source to a url; added url field to image source input fields
  • [optimized] using just a single function to create the source string whereever needed (fixes missing licence on full image lists)


  • [feature] hide sources caption for your own images, if option to hide sources on own images is enabled


  • [bugfix] setting default meta values if isc functions are directly called
  • [bugfix] minor error when image own checkbox is not checked
  • [bugfix] don’t link to unpublished posts from the image source list
  • [bugfix] check if mb_convert_encoding() function exists before using it


  • [bugfix] fixing js issue breaking save and preview function


  • [feature] added css classes to image lists for better css styling
  • [feature] added option to hide own images from image sources lists
  • [l10n] updated German translation


  • renamed post.php.js to post.js to avoid conflicts with some (broken) caching plugin rewrites


  • [feature] added hooks to enable developers to add their own images to the image source list – more information in the manual
  • [feature] added image licences
  • updated settings page layout so it works WordPress 3.8 RC1
  • [l10n] updated German translation


  • [bugfix] fixed the problem when the plugin is used with wpdirauth plugin.


  • [bugfix] fixed problems with special characters like German umlauts (äöü) in file names
  • added .jpeg to allowed image extensions


  • added missing files


  • [bugfix] list featured images with the ‘isc_list_all’ shortcode; please resave posts with featured images to see them in the list


  • [feature] hide the image source list under the post/page (default: visible)
  • [feature] use uploader as the image author, not the posts author
  • [feature] warnings, if image is saved without image source
  • [feature] show image source directly within the image; you can choose the position
  • [fixed] update issues

  • [fixed] solid fix for an issue occurring on updating to version 1.2

  • broken fix, DON’T use this version

  • really hot fix for problems some of you experienced after updating to version 1.2.


  • [feature] added an option panel under settings to customize most frontend texts
  • [feature] show image thumbnails in the list of all images
  • [feature] you can add a backlink to the authors page under the image list (optional)
  • [feature] you can now display the real posts author name when an image is marked as “by the author”
  • [feature] link to posts from the image list
  • [fixed] added a more flexible post-image connection to list all posts with a specific image in the list with all images
  • [fixed] image list: don’t list images that are currently not used in any post
  • [fixed] no need to initially run the image index after first installing the plugin
  • [l10n] updated German localization


  • [feature] shortcode to list all images conntected to all posts and pages as a paginated list
  • [fixed] content filter now finds images that have been edited (like rotated)
  • [fixed] checking for missing key to prevent error message
  • [fixed] added link to plugin homepage with more details

  • [fixed] wrong user level check caused shortcode to not work for normal visitors


  • [fixed] wrong version number in main file so didn’t inform about updates
  • [fixed] some minor coding standard issues
  • [fixed] small text for donate link
  • [fixed] plugin url
  • [removed] donate link (will come back after 10.000 downloads 😉


  • [fixed] javascript file is now being loaded and missing fields can be added
  • [feature] added button to reload the missing sources page after fields have been added
  • [locale] updated German translation


  • [fixed] show image sources under the post
  • [fixed] display “checked” attribute in frontend
  • [fixed] don’t display image titles in image source list without a source
  • [feature] show sources for all images visible in the post content, not the post gallery
  • [feature] automatically load image source list first time a post is displayed after plugin installation


  • initial submittion
  • [feature] Added image source fields to mediathek
  • [feature] List images with missing sources
  • [feature] Shortcode to include the sources in content fields
  • [feature] Function to include sources of a post in templates