Image Symlinks, quick bulk image upload for WordPress [Updated August 2011]

Image-Symlinks.png

Image Symlinks is born of a desire to speed up and simplify WordPress post images, while retaining quality. Very briefly, it works like this:

  1. Upload large source image
  2. Use Symlink-image-button to insert image into post
  3. Decide width and/or height of inserted image

How’s that different from using the built-in WordPress image upload and insertion mechanism? To put it shortly, step 2 and 3 have switched place. WordPress scales your images according to preset sizes when you upload, and doesn’t allow you to change those sizes without changing a global setting and uploading again. Image Symlinks creates the image cache on demand, and according to either a global setting, or individual image settings.

This is smarter than it sounds, and the reason for which I created Zenphoto Short-tags in the first place, so I’ve written about it at length before.

Features

Image Symlinks is powered by TimThumb, so some of its features are care of the great gentlemen Ben Gillbanks and Darren Hoyt. Symlink Images does the following:

  • Lets you use the built-in WordPress image uploader, but insert them via Symlink Images for extra scaling options
  • Decide on a custom upload directory, and get access to a custom and super userfriendly Symlinks image uploader
  • Easily browse your WordPress images or Symlinks-uploaded images and insert with one click (guaranteed to be faster than the bulky WordPress interface)
  • Cache is created on-demand, and tidied up automatically
  • Transparent PNGs keep their 24bit transparency when scaled

A lot more features are on the drawing board. Read on.

Built-in Image Uploader

Image-Symlinks-upload.png

Image Symlinks uses Uploadify to upload images. Upon upload, you can insert image directly, or  you can go browse your repository.

Using the Symlinks uploader, you by-pass the WordPress database entirely and deal only with clean image files in one directory and cache files in a separate directory.

If you want your images to be saved in the WordPress media library, use the built-in WordPress uploader, but insert those images using Image Symlinks. That way you both get access to the new 2.9 crop and edit features, and Image Symlinks’ advanced cache and scaling features.

Image-Symlinks-insert.png

Options

Image-Symlinks-options.png

Image Symlinks currently allows you to specify a default width and a default CSS class. The above image, for instance, has no CSS class (but you could specify “alignright” if you want your images right-aligned by default), and a default width of 600px.

Inherently Extensible

Since Image Symlinks built-in uploader by-passes the WordPress database, it allows you to easily combine your WordPress with your custom gallery CMS. Simply specify your custom upload directory to point to the gallery album folder and you’re all set. I’ve integrated Image Symlinks with ZenPhoto, for instance, so any image I upload is also added to my ZenPhoto photostream.

In addition to this, all images are auto-linked by default, pointing to their larger versions with a simple hyperlink. This is optimal for search engine optimization, and makes it super-easy to combine with a Lightbox solution.

How To

Simply upload and insert your image using the custom Image Symlinks media button. If you want to be manual, the syntax is:

[raw]
Image File.png
[/raw]

Upon activation of the plugin, you should make the cache directory writable by the webserver. By default, the built-in uploader is disabled, and you use Image Symlinks only to insert images. If you want to specify your own upload directory, that also has to be writable.

Download

Download Image Symlinks (currently beta) from the WordPress Repository

Future Features

Image Symlinks is currently a rather early release. I’m taking a page from Google and dogfeeding myself, using it on this blog. So far it’s super-snappy and very stable, but not quite feature-complete. Any feedback is welcome, but here’s what’s planned:

  • Image Symlinks should offer to create custom directories for you
  • Option and shortcode attribute to disable auto-linking
  • GUI for inserting more than one image at a time
  • GUI for adjusting width/height of inserted image
  • Shortcode attributes and GUI for cropping images
  • Gallery widget
  • Recent images widget

Aside from this, I’d like to simplify the whole installation process to the point at which it’s “activate and you’re done”.

Look for more features next year.

Updates

  • April 2010: Bulk insertion! The image insertion dialog no longer closes whenever you click to insert an image, but only tells you the image is now inserted. Much faster.
  • May 2011, 0.7: TimThumb has been updated, and the cache directory is now created automatically in the wp-content folder (provided it’s writable). This should make first installation, as well as subsequent updates way easier.
  • 0.8: Large polish update. Plugin now translatable, and new beta shortcode: latestimages, which shows your last x images, like this:
  • 0.8.5: Security fixes.

19 Responses to “Image Symlinks, quick bulk image upload for WordPress [Updated August 2011]”

  1. Image Symlinks, my new #Wordpress image insertion plugin. Uses TimThumb by @binarymoon and @darrenhoyt: http://noscope.com/?p=5747

  2. RT @noscope: Image Symlinks, my new #Wordpress image insertion plugin – http://noscope.com/?p=5747

  3. RT @darrenhoyt: RT @noscope: Image Symlinks, my new #Wordpress image insertion plugin – http://noscope.com/?p=5747

  4. [...] Image SymlinksGraphics GUI Imaging Photography Software WordPressAn interesting WordPress plugin from Joen Asmussen. I don’t think I’ll employ it at the moment but it’ll be worth keeping an eye on [...]

  5. This is rather awesome. It’ll make life much easier for clients.

    i18n?

  6. Gil Namur says:

    Hi there!

    This looks great. Have you tested it under WP MU?

    Cheers,
    Gil

    • Joen says:

      I’m afraid I haven’t, no, and I can imagine that it would or could cause some trouble — if not resulting in incompatability, then perhaps security issues. The thing is, you can specify where you want to upload files to in your options page, and if you install it on WPMU, anyone can specify any URL on the site. So theoretically, one user could upload an image to another users folder, if they knew what URL to type in.

      This is all speculative, though, and you’re welcome to report back any findings.

  7. Gil Namur says:

    Hi Joen,

    Thanks for your reply.

    I have a test site so will give it a try in a few weeks after I am over the work load on my plate right.
    I’ll let you know how I made out!

    Cheers,
    Gil

  8. iplnts says:

    Hi!

    I completely agree with – simplifying the WP image users’ life! It is great – something I was looking for so much!

    However, I have a little trouble: I’ve set up my custom directory simple wp-content/images
    When I’m trying to upload I’m just getting this message
    —————————————
    You have a problem with your javascript
    Your server is configured to upload files no larger than 5M.
    Also, this totally fast uploader requires the Flash Player.
    —————————————
    I’m just testing my WP system on localhost/wordpress…
    Every javascript functionality is allowed in my FF 3.5.7 browser
    I’m using wamp server 1.7.4
    Yes, *** set in my php.ini files (both in apache2/bin, and also in /php/
    ; Maximum allowed size for uploaded files.
    ;upload_max_filesize = 2M
    upload_max_filesize = 5M
    Flash player had been installed (flash site checks that’s working)

    What would be wrong? Could you help me please?
    Thanks for your reply
    br.
    iplnts

    • Joen says:

      iplnts: You have a problem with your javascript
      Your server is configured to upload files no larger than 5M.
      Also, this totally fast uploader requires the Flash Player.

      Well that’s odd.

      So, the sentence “Your server … ” and “Also, this”… is a message that’s present for ALL users, so that’s not part of the problem.

      The problem here is “You have a problem with your javascript”. That’s a message you receive if somehow the Flash uploader fails to embed.

      So, which browser are you using? If you’re using IE, can I get you to — if not temporarily — try Google Chrome, Firefox, Safari or Opera? Let me know if that works.

    • Joen says:

      Hold on, I see you’re using Firefox already. Hmm.

      You say you’re using this locally? Hmmmm. Could I possibly get you to try it online?

  9. iplnts says:

    Hi Joen!

    Thanks for your reply.
    Yes, but unfortunately I can not momentarily try yet online. (I’m only in a heavy test phase yet. I’m trying to establish a multi editor – not user MU environment)
    Your plugin is a MUST!!!! Because the image handling complicated using the database, I’d like giving a much simple resolution to my co-.authors.

    —- technically the problem possibly would be – as I can see using Firebug debugger neither any script and css file is embedded.

    <link rel="stylesheet" href="/uploadify/uploadify.css" type="text/css" />
    	<script type="text/javascript" src="/uploadify/jquery-1.3.2.min.js">
    	<script type="text/javascript" src="/uploadify/swfobject.js">
    	<script type="text/javascript" src="/uploadify/jquery.uploadify.js">

    I’m trying figure out which value $uplodify_url gets, surely the path would be wrong.

    br.
    iplnts

  10. iplnts says:

    Hi Joen!

    I’ve got momentarily that result:

    If I install (unzip) your plugin into (and naturally activate it)
    myblogurl/wp-content/plugin/img-symlinks/
    (myblog url actually http://localhost/wordpress)

    in the

    image-symlinks.php
    87 line

    $plugin_dirname = split("/plugins/", dirname(__FILE__));

    will give back an empty string, so SYMLINK_PLUGIN_DIRNAME will also emtpy

    define('SYMLINK_PLUGIN_DIRNAME', $plugin_dirname[1]);

    thus later both

    107 line

    $image_btn = WP_PLUGIN_URL . '/' . SYMLINK_PLUGIN_DIRNAME . '/media-symlink.gif'; 

    (the picture obviously doesn’t appear because it is in the img-symlinks subdir

    and previously mentioned css and js will miss because

    576 line

    $uploadify_url = WP_PLUGIN_URL . "/" . SYMLINK_PLUGIN_DIRNAME; 

    I’m trying to install unzip your plugin into the blogurl/plugin/ and seeing what will happen

    br
    iplnts

  11. iplnts says:

    Hi Joen!

    Hold on – I’ve got a simpler resuolution than reinstalling
    I’ve changed 87-88 line in image-symlinks.php

    // $plugin_dirname = split("/plugins/", basename(dirname(__FILE__)));
    // define('SYMLINK_PLUGIN_DIRNAME', $plugin_dirname[1]);
    define('SYMLINK_PLUGIN_DIRNAME', plugin_basename(dirname(__FILE__))); 

    the latter will work correctly! – I’m happy :)
    ———————
    Another question:
    I can insert the uploaded image, but I’dont’ know how to modify the picture?

    br
    iplnts

  12. Joen says:

    New version, features bulk upload! Also, iplnts tweak right above, has been included.

  13. @Heilemann You have seen this WordPress media library replacement, right? http://noscope.com/journal/2009/12/image-symlinks

  14. [...] Zenphoto Shorttags is no longer actively developed. Instead, I’m working on Image Symlinks, which can take the place of this plugin. Please contact me if you wish to adopt this plugin, [...]

Reply