Frequently Asked Questions

­

Go
Reset

Visual

Sorry, but the Pinterest waterfall layout is not available in Justified Image Grid. It's horizontal and is without columns. It might get added as part of a future update, though. Why, what's wrong with it, you might ask... let's see a comparison.

Defining the masonry layout

With so many grid styles and plugins, it's hard to grasp what the difference is. There could be a misconception about what is considered masonry. By the JIG developer's definition, masonry is a strictly horizontal grid where thumbnails align just like bricks in the wall. After all, masons are a craftsmen who lay bricks. They don't do it vertically. It's often confused with the waterfall grid layout that Pinterest uses.

Eye movement and thumbnail flow direction

The natural reading direction of most countries is horizontal, either left-to-right or right-to-left. When you tell a story with pictures, you do it in your reading order. For example, wedding photos. Can you imagine that in a vertical layout? How can you tell which image is next? There is no natural flow except a sense of infinity by scrolling and scrolling. Indeed, it's good for galleries where the order is not important, that's why it works so well for Pinterest and Tumblr. When you look at a JIG gallery, your eye movement is the same as during reading, it's what your eyes are programmed to. Do you think it's a coincidence that Flickr (the largest photo site), Shutterstock, Google image search, Google+, Google Photos, 500px front page all use this horizontal layout?

Photo orientation balance

The usual argument is that (in the horizontal layout) portrait images get diminished among many landscape shots. Think about it, why would this be any different in the vertical layout? Orientation roles would simply get switched. Landscape shots would have small surface area in comparison to "huge" portrait photos. Justified Image Grid makes an effort to increase row height where a portrait photo is present, while decreasing row height for landscape-only rows. This results in a balanced grid. Applying the same logic to a column-based gallery would be problematic as they consist of a predefined, relatively small number of columns with many thumbnails in each. Any of them can contain a portrait. Therefore column widths can't be juggled so well, unlike row heights in a horizontal masonry layout (JIG).

Permalink ·  Deeplink · Helpful?  Yes  No 72% found this satisfactory.

Yes it's possible, although there is no dedicated setting for this yet as it's just like a recipe. The components of this layout are variable and are specific to your theme and photos.

Most likely you need this for mobile devices. The guidelines are these:

  • Target row height in the range of 360 to 640.
  • Row height max deviation is irrelevant only when you use the Disable cropping setting (which is recommended).
  • For a more compact look, use a moderate row height with the same amount of height deviation, e.g. 360 for both settings. Do not disable cropping in this case.
  • Please note that the device in landscape orientation has less available height than a portrait thumbnail this way, but JIG will limit the thumbnail height to the screen height!
  • Consider disabling the lightbox.

For desktops only, things are different:

  • Set a very large row height, in the range of 800-1200 with 0 height deviation (irrelevant due to disabled cropping). The exact value depends on how thin your portrait images are, and how wide your content area can be. It's open to experimentation, there is no one size fits all magic value.
  • Always disable cropping.
  • Disable the lightbox, it will not be very useful in this setup.
  • Disable TimThumb unless your source images are large (above 1200px on average).

It's recommended to use the mobile versions of the core settings: Mobile row height and Mobile row height deviation because the recommended values are highly tailored to separate device types. Alternatively, create custom presets and use one for desktop and another for mobile devices.

If your theme is not responsive, then by all means: yes. Say, you have 900px wide content area to work with. You'd like 3 thumbnails at 300*200, with no spacing. Even if your photos have different aspect ratios, you can force-crop them using the Thumbnail aspect ratio setting. You'd enter 3:2 or 300:200 or 1.5, as they would do the same thing. Also, you'd just set Target row height to 200 with Row height max deviation set to 0.

However, your site is most likely responsive. In the responsive world, there is no such thing as x images per row. Why? Imagine that (in text) the optimal number of characters per line is 50-60. Would it still be comfortable to read on a small mobile screen? Indeed, it would be too small to read. So, if 5-6 images fit comfortably in a row on desktop, would they be fine on a mobile screen? Again, no. So the x images per row idea is flawed at this point, unfortunately. Let Justified Image Grid do its job and determine that 1-2 thumbnails per row is the most optimal on mobile devices. Still, it'll all depend your Target row height values. In practice, you can influence it to fit only 1 thumbnail per row, or force it to squish in many small thumbnails.

The fixed thumbnail size has a conceptual problem. It could be guaranteed on a mobile device, but no other image at that size would fit next to the first one. In the end, it would be impossible to have a justified layout that way. Therefore, an aspect ratio value is introduced, which can be fixed or inherited naturally from the original picture.

Sorry, but Justified Image Grid has rows, not columns. This is a redirect entry as the question can be answered in multiple ways.

Do you mean...

Primarily, thumbnail size is controlled through the Target row height and Row height max deviation (+-) settings. Justified Image Grid calculates the optimal size for your thumbnail within the range you set. It respects the original aspect ratio and only crops if the range you set is not high enough to make the justified layout mathematically possible.

The aspect ratio can be the original, or overridden by your custom, fixed Thumbnail aspect ratio value. It's not possible to directly set a fixed thumbnail size in pixels, but the aspect ratio control is the next best thing.

The Randomize thumbnail width is available to spice up a grid of similar aspect ratio photos.

Learn more about the plugin:

No, a thumbnail cannot span over two or more rows, at least not yet. All thumbnails are contained within the boundaries of rows. Since the layout is automatic, there is no way to mark an image to behave differently than the rest. In the future this may likely change.

Yes you can. There is a setting called Spacing between the thumbnails which lets you set a distance in pixels, which is applied between every thumbnail. For technical reasons this cannot be % based nor changed with the screen size dynamically. However, it's possible to set a different spacing for mobile devices. Any setting can have a mobile specific value. You can create a custom preset and choose it to be used for mobile devices only.

Different spacing between thumbnails and rows can be achieved via Custom CSS. For example, no spacing between the thumbnails, but 10px spacing between rows.

Yes, of course it's possible. On this site, most demos feature photos that all have different aspect ratios by design. So the grids look nicely random. However, when you create your first gallery that consists of, say, 15 landscape shots and 3 portraits, it's not going to look that random. Obviously, false advertising is off limits, so there is a built-in solution called Randomize thumbnail width that will intelligently crop to an extent limited by your threshold. It will always crop the same amount from a given thumbnail at a specific row height, meaning it's a seedable random (just in case a photo is cropped in an undesirable way). It will not create an infinite number of thumbnails on your server. Furthermore, you can depend on the fact that the result grid will always look the same for your visitors. Of course, the lightbox version will remain untouched.

Behavior

Introduction to translation

Translate your site and create multilingual galleries using WPML and Justified Image Grid. Every text that appears on the frontend (even the back-end) is made with the possibility of translation in mind. There are over 1500 strings that can be translated, most of this is the admin area. For example, you can basically rewrite certain labels to your client's language, to make it easier for them. WPML takes care of managing the translation of all texts using a nice interface that is easy to use if you follow this article. The best thing is that you can create multilingual galleries without having to upload the same images multiple times.

Check out a multilanguage demo of WPML and Justified Image Grid!

What are the requirements for translation?

Please make sure you have the latest version of all plugins at all times. You'll need the following for the complete experience:

  • WPML Multilingual CMS - WPML combines multilingual content authoring with powerful translation management. Obtain a "Multilingual CMS" or "Multilingual CMS Lifetime" version at WPML.org.
  • WPML String Translation - WPML add-on: Allows translating texts in the theme, in other plugins and in the WordPress Admin.
  • WPML Media - Turns the WordPress Media management into multilingual and allows showing the same images on translated galleries.
  • WordPress content (posts, pages, images to translate) and Justified Image Grid v2.3 or newer.
Getting started with translation

Read the getting started guide at WPML first. You need to install the plugins in the above order. Justified Image Grid is ready for translation out of the box.

How to create multilingual galleries?
Translating WordPress media
  1. Check out the workflow with WPML media
  2. Upload a photo to the Media Library: Madia >  Add New
  3. Set the image metadata fields such as title in your default base language, such as English.
  4. Switch the current language in the dashboard admin bar (at the top) to another.
  5. Provide the image's information in the other language as well.

Note: WPML does not duplicate the image on the server, so it does not take up extra space! However, it makes a copy of the image in the library as assigns a new, language specific ID.

Workflow with Justified Image Grid
  1. Create a gallery containing translated content in your post, using your default, main language. Use the Shortcode Editor to do this. Use images attached to the post/page (attribute-less shortcode), IDs or even categories, tags.
  2. When providing the translation in other languages, you can just use the same JIG shortcode with IDs, categories or tags from the default language.

Note: In case you use WordPress galleries without JIG shortcodes you would normally re-create the gallery with the translated images. Just by looking at the WordPress gallery preview in the visual editor, you will only see preview images when the dashboard set to your default language. However, when JIG is taking over WordPress galleries automatically, the translated version appears on the frontend without any extra effort.

In JIG shortcodes:

  • Default language image IDs or categories, tags work for all languages, they show translated version automatically.
  • Don't use language specific image IDs or translated categories, tags.
Recent Posts

Justified Image Grid only shows posts that are in the selected language. If a post doesn't have a translation in that language, it is hidden. In other words, you will not see a mixed language Recent Posts grid. Translate (or duplicate to fill, in the meantime) the content you wish to see in other languages.

Translating NextGEN image metadata
  1. Insert a JIG gallery containing NextGEN content into the translated post/page.
  2. Once you view that page at least once, go to WPML > String translation > Select strings within domain and choose plugin_ngg where your captions are prepared.
  3. Provide translation (check the box that says the translation is complete).

Learn more about WPML translation management and translation workflow:

How to translate user-changeable frontend texts of Justified Image Grid?
Admin texts

Go to WPML > String translation > Select strings within domain and choose the admin_texts_plugin_justified-image-grid option. These are the user-changeable settings which you can translate to your desired languages. If you don't see a setting, set a value for it in your default language in JIG settings first.

Shortcode editor

When providing translation for a post or page, you can change settings in the JIG shortcode, just for the translated post/page. This includes user-changeable texts such as the text for Load More button and everything else that may have a global version as well. This allows a more custom and local translation, following the "every instance can be different" mindset of Justified Image Grid.

How to translate built-in strings of Justified Image Grid?
Text on the back-end (admin areas)
  1. Go to WPML > Theme and plugins localization
  2. Choose Translate the theme and plugins using WPML's String Translation and save. Re-visit this page, more options will show up.
  3. Scroll down until Strings in the plugins and check the box next to Justified Image Grid.
  4. Hit Scan the selected plugins for strings at the very bottom.
  5. After it finished scanning, check out the row of JIG again. You'll see a new total for translatable strings (> 1500). Click the View strings that need translation button.
  6. Search for the desired text, then translate it (check the box that says the translation is complete).
  7. You'll only see the change if the WordPress dashboard itself is set to that language, not your WPML language. Go to Users > Your Profile and change your language.
Lightbox texts

It's best to use universal words such as "X" instead of "Close" and "/" instead of "of". Some lightboxes are this way out of the box, others can be set up to be so. Lightboxes get their words from their JavaScript files.

Conclusion

If you wish to create multilingual galleries, it's best to use the WordPress source with WPML and Justified Image Grid. Most of the work happens outside JIG, using WPML's standard media workflow that teaches you how to translate with native WordPress solutions. NextGEN source is also compatible but less convenient to work with. Other image sources are not translatable as they are not managed inside WordPress. To change admin texts and settings on a nice interface you'll need the String Translation module of WPML. Aided with these tools you'll be able to translate just about anything Justified Image Grid shows from WordPress.

Learn more about WPML String Translation and changing plugin strings:

In case you need any of the following, the answer is most certainly yes. Learn more about it on the Custom links demo page.

  • Click on a thumbnail to open a website or a page on your site (in the same tab or new tab). Please note that you can automatically link to posts, pages, products, etc. using the Recent posts source which is better suited for this purpose.
  • Open YouTube, Vimeo or self-hosted videos in the lightbox. However, the RSS feed feature may be better suited to set up YouTube and Vimeo video galleries automatically.
  • Load HTML content such as a contact form in the lightbox.
  • Show a few random photos from a gallery as a home page or sidebar teaser, but have them link to the main page for this gallery. This is achieved by automatically applying a custom link to every photo in a grid, using the Shortcode Editor > General tab > Settings that affect the entire grid > Custom link override setting.

Unfortunately no, it's not possible to open a non-JIG thumbnail or text link to open in a lightbox of JIG. Assuming you mean prettyPhoto and/or PhotoSwipe. The technical explanation is provided so you can better understand why.

The lightboxes in Justified Image Grid are not meant to replace your theme's solution, nor they should extend beyond JIG. This is to avoid conflicts such as opening double lightboxes and to allow a closer symbiosis with JIG's proprietary layouts. Certain lightboxes, especially the main ones (prettyPhoto and PhotoSwipe) have been customized for better social sharing with smart deeplinking. These require the thumbnails to be set up in a particular way (including the content ID and image size information) and server side support from JIG itself. The benefits of these customizations would not be available outside JIG, in other words the lightboxes would not work the way you want them to.

If you wish to use a 3rd party lightbox then by all means yes, you can have it open from JIG thumbnails and as also from single images in your content. These include:

  • FooBox
  • Social Gallery
  • Jetpack Carousel
  • Your theme's built-in lightbox could be used as a custom lightbox in JIG, provided you set up the custom class, rel and/or data-attributes for the thumbnail link. Thes are available at the Lightboxes tab > Link attributes (also for custom lightbox) section.
  • Most other separately installed lightbox plugins. These may include Magnific Popup or ColorBox.

No, Justified Image Grid by itself is not a source and it's not another gallery management plugin. It uses Sources you know and probably use. Album-gallery relationships are already available using excellent solutions without much to improve upon, thus JIG didn't intend to re-invent the wheel.

To have Album-gallery relationship, you need to use:

Unfortunately there is no pagination available currently, but it's planned for a future release in an update. You can use Load more or Infinite scroll features as an alternative.

For advanced users

To have pagination at the moment, replace the output of a plugin or theme (that has pagination) with JIG. For example the Posts page or category archives have built-in pagination by WordPress and your theme. The list of post IDs on a page can be created with PHP and passed to a JIG template tag to its Recent posts > Post IDs attribute. This would take place in a PHP file of the theme that is responsible for the view you wish to change.

Permalink ·  Deeplink · Helpful?  Yes  No 67% found this satisfactory.

Currently it's just disabled for performance reasons. PrettyPhoto would load all large-sized images and scale them down to be shown as the thumbnail strip. A modification is underway to use the small thumbnails that are already loaded by JIG.

To re-enable this feature, go to JIG settings > Lightboxes tab > PrettyPhoto settings > prettyPhoto JS settings and change this line:

Content sources

Instagram's announcement

Instagram Platform and documentation update. Apps created on or after Nov 17, 2015 will start in Sandbox Mode and function on newly updated API rate-limits and behaviors. Prior to going Live, and being able to be used by people other than the developers of the app, these apps will have to go through a new review process. Please read the API documentation or the Change Log for more details.

Any app created before Nov 17, 2015 will continue to function until June 2016. After June 2016, the app will automatically be moved to Sandbox Mode if it wasn't approved through the review process.

What does it mean for JIG?

New users, or existing users who wish to setup the Instagram source for the first time:

If you register a client now, you'll only be able to use it live after Dec 3 and only if they approve your review request. Their review process will only allow apps to pass through that comply with their new rules, obviously. Unless you can convince them that you are not trying to replicate Instagram's native capabilities, they will likely not approve the app. JIG does bring unique capabilities such as showing photos from a location, which is not possible otherwise. However, Instagram wishes to display ads and they can't if people view content through 3rd party software such as JIG. For your information, keeping the app/client in Sandbox Mode (which you can do with Facebook apps) is not a good solution here as it only lets access to your own content and only the most recent media.

Existing users who already set up an app and have JIG galleries working with Instagram content:

Existing users who already created an app will be able to continue using the Instagram source until June 2016 (you are fine until this date). However, you'll need to have your Instagram client approved to use it beyond that date. This may prove to be a difficulty, as mentioned above.

So what will happen to this source?

If Instagram won't approve users' clients, the Instagram source may eventually get removed or no longer advertised as part of JIG. As long as it works for existing users, it'll remain in the plugin.

How does this affect other plugins? Is there any alternative?

Eventually, it will affect every Instagram plugin or 3rd party app that fetches content from Instagram.

  1. If a software (plugin, mobile application) uses its own Instagram app and lets customers and users connect to it through its own middleman server:
    The developer willl need to have the app reviewed and approved, else it'll cease to function but only after June 1st, 2016. Getting it approved will prove to be difficult since they've just changed their standpoint and no longer allow apps to replicate Instagram's features. Also, they are removing the feed endpoint and who knows what more. What will happen to all the Instagram gallery plugins? And presently how come these solutions don't hit the API rate limits, while it's basically just one app for all users? They all depend on the developer's single client.
  2. If a solution requires every user to set up their own Instagram apps (JIG is like this):
    New apps already start in sandbox mode, meaning that they are useless. Instagram's sillines shines here that you can't even have your new app reviewed and approved before Dec 3 but they made the change on Nov 17 out of the blue. Previously created apps will function only until June 1st, 2016 unless reviewed and approved for use.

Depending on how strict their review process is, this could mean the end of an era. It's like how Twitter changed their mind about their API some time ago, giving custom Twitter widgets a very hard time. Yet many themes still use those today. So maybe their approval is as easy to get as applying for a Flickr API key? Or more serious like Facebook's apps?

Read more about this topic:

Permalink ·  Deeplink · Helpful?  Yes  No 80% found this satisfactory.

Yes! With Picasa recently discontinued and the Photos tab missing from Google+, all your photos are now just on Google Photos. You can easily access them via RSS feeds and put that into JIG.  Feeds from Google have excellent apabilities because the feed's photo count is not limited (unlike other sites' feeds), and photos come at a decent size! However, automatically figuring out the RSS feed URL based on a Google Photos album URL is not possible. Casper Baghuis (a valued customer) wrote an excellent article and how-to about Picasa and Google photos on your WordPress site all using Justified Image Grid. Recently, he also contributed a small tool to make your life easier and get access to your albums' RSS feed URLs!

September 27 update: This new method by Casper is confirmed to be working and is better and quicker than ever to get your RSS feed URLs!

Get your JIG gallery based on a Google Photos RSS feed
  1. Go to Google Photos RSSerator
  2. Click Sign in button
  3. After approving the permissions and having been logged in, you can choose the album you wish to show with JIG by clicking the blue RSS feed icon in its row on the right. Copy the URL of the feed. Your URL should look something like this:

    https://picasaweb.google.com/data/feed/base/user/112290004776472583114/albumid/5995482558738492129?alt=rss&kind=photo&hl=en_US&imgmax=1152

  4. Use the Shortcode Editor to create your JIG gallery, now that you know the RSS feed URL. The result will be like this:
[$justified_image_grid rss_url=https://picasaweb.google.com/data/feed/base/user/112290004776472583114/albumid/5995482558738492129?alt=rss&kind=photo&hl=en_US&imgmax=1152 rss_links_to=image]
Tip

Change the &imgmax=1152 value at the end of the RSS feed URL to change what size your images will appear in the lightbox. For example, if you replace 1152 with 2000, you'll have images with 2000 px on the longer side.

References
Permalink ·  Deeplink · Helpful?  Yes  No 40% found this satisfactory.

In short, no. Sources cannot be combined with each other. It's only possible to create galleries with one source at a time. The primary reason is that the date information is not standardized across sources, therefore interleaving distinct entries by date would likely be problematic. The future may hold the possibility of merging multiple sources. However, the following ways are available already:

  • Combine multiple RSS feeds together. It will automatically sort the entries by date. For example, a YouTube and a Vimeo channel's combined video gallery. Create a combined portfolio from your most recent 500px content and the latest deviations from DeviantArt.
  • Different sources can be used in subsequent instances on the same page. There is nothing stopping you from placing multiple JIG galleries under each other. They'll appear to seamlessly merge where they touch, especially if you use the JIG settings > General tab > Incomplete last row setting's Hide option - for a gapless look.

It's not possible yet. The way Flickr integration works is that you only need an API key to add any user. While this may change in the future,  currently there is no OAuth authentication, unlike for Facebook source. This is a simpler, 1-click way, but it only allows public content to be shown on your site. Photos marked with private/family privacy option or those that are age-restricted: "unsafe" are not available. Since Flickr offers a very large amount of storage space, it would be widely open for abuse by hosting content privately and for free, leveraging their CDN. It's not what Flickr is for, hopefully you agree.

The point where Justified Image Grid is open for extensibility is the RSS feeds source. They are basically just XML documents. It's possible to craft such document manually or using PHP. Stay tuned for more detailed tutorials on these subjects.

With a relatively simple markup, you'd add source URL and title/description/date to include any external photo in a list. You could even make the photos link to somewhere specific. After that, JIG would take them and display a beautiful gallery. It'll determine the size of each photo then fetch and process corresponding metadata. The result can open in the lightbox or have clicks directed at your custom links.

For a more automatic way, one would use PHP to scan an FTP folder and generate an RSS feed of it. Maybe such script already exists, or else you could hire a freelancer to create it for you according to your specific needs. While you may not require metadata such as title and description info, it's always a nice addition to a gallery. Since the filenames can be less meaningful using letters and numbers, it's worth noting that PHP could read IPTC metadata from the files for the "ultimate FTP to RSS feed script".

Yes, both! The Recent posts feature is not limited to recent content. It's very versatile and can even be used to create post galleries for specific authors. The currently logged in option will detect the user and display their own posts in a Justified Image Grid.

Purchasing and licensing

Most likely you've moved from development or production, or wish to use JIG on another site. This idea is in accordance to the CodeCanyon regular license terms, which allow you to use the plugin on one site per license. So you've asked support to reset your license. Here's what happens. It's a manual process to prevent abuse, but your license is no longer bound to a specific domain. What to do now?

  1. Please ensure that the JIG Settings > Purchase Code setting is empty on the old site (if it's still active).
  2. Add the purchase code to the new site.
  3. WordPress checks for updates every 12 hours and on demand. Go to Dashboard > Updates and click the Check Again button. You might need to click it again or refresh a couple of times.
  4. You can now update the plugin on the new site, as usual.

The license will be bound to the new host once an update check is performed. You can request a reset again anytime (within reason). If your other site is a development version, the only way to keep both updated is to:

  • Place development area in a subfolder and not on a different host.
  • Update JIG on the other site manually.
Permalink ·  Deeplink · Helpful?  Yes  No 80% found this satisfactory.

Due to CodeCanyon item promotion guidelines a policy is in effect to avoid a race to the bottom scenario, thus no additional incentives for the purchase can be offered. The only incentive JIG has is itself! It already has a low and competitive price, at which you get a product with years of focused development time and polish, continuous lifetime updates and limited warranty (support).

Unfortunately, there is no such license. The extended license does not cover multiple uses either. Please refer to the License page where it's explained in a simplified, easy to understand manner. CodeCanyon license details may be hard to understand at first.

There is no such thing, sorry. Due to CodeCanyon exclusive author arrangements it's not permitted to distribute the plugin for free. If you need to ensure that the plugin will work on your site, simply rely on pre-purchase support or the plethora of demos on this site. You'll have all the assistance needed to make an educated decision whether or not to use this product.

Technical

Type

Go for lesser-known small companies that have a track record of high reputation, reliability and fast support. Justified Image Grid proudly uses MDDhosting since 2011, long before development has started. Their 24/7/365 ticket-based support's response time is insane, it's always just a couple of minutes to half an hour maximum. They are positioned in the middle of the USA, with their speedy servers placed in the Handy networks data center in Denver, Colorado. They offer a discount for new users and regular promotions for existing customers in form  of a credit balance system with deposit bonus.

Location

Decide the physical location of your hosting, it's also important. Does the majority of your target audience reside in the same country as you? Consider which is more important to you, the server placed at a central location or fast route between you and the server? If your server is on another continent, then copying lots of small files or merely navigating on the FTP will be slow. Similarly, serving lots of small files such as thumbnails may come with delays. The reason for that is the high ping - round trip time it takes to communicate. In case neither are you or your audience is in the USA, there is even less reason to go for large US hosting companies. Choose a local company with a small user base. Your speeds shall be lightning fast for both you and your visitors. You can always use a CDN or the free Cloudflare to speed things up for international visitors.

Avoid
  • Popular hosting companies and their cheap shared hosting packages. It may sound harsh, but these include Bluehost, Dreamhost, Hostgator, GoDaddy (by the way they bought Media Temple but continue to operate independently). With possibly millions of customers (gained through aggressive affiliate marketing), more and more sites need to share resources provided by a finite number of servers. They start to introduce superfluous security measures, connection rate limiting, tight memory and resource limits, to protect themselves and neighbor users. This makes your site prone to errors and a bumpy overall experience. To give you a metaphor, assuming the pricing was similar, where would you live? In New York City's projects or in a private gated community in Los Angeles...
  • Any company that claims unlimited speed, disk space, monthly bandwidth. It's much better to use the service within your known and realistic limits than to be penalized for hidden "fair use" limits. The mindset behind "unlimited" is that not all of the customers would use all of the allocated resources anyway. There are quite a few things that can be truly unlimited though, such as add-on domains, email addresses, MySQL databases, FTP accounts etc.
  • Packages labelled WordPress optimized or similar, especially WP Engine. It's usually marketing nonsense, WordPress doesn't need anything special except a solid foundation and a modern environment.

Whenever you see this box under gallery examples, there are a few things to look out for...

[$justified_image_grid preset=19 last_row=center ng_pics=603,604]

  • Copy/paste it to the Shortcode Editor first. It's always best to pass the example through that tool.
  • Change the content source - you most likely don't want to show "NextGEN pics with the ID 603 and 604" from the above example. The source is not removed from the example shortcode, so you can see what is used for that specific example.
  • There are some additional settings that are only included for the example's sake and it's very likely that you don't need them. They make the examples short and compact by using a Limit, Max rows or Incomplete last row etc. If the example includes these, you might want to check them.
Permalink ·  Deeplink · Helpful?  Yes  No 23% found this satisfactory.

Thumbnail creation is necessary for the various needs of the plugin and here you can read a full technological explanation that should cover all your concerns. Please note that you are free to disable it any time, however there would be a performance hit as the large or original images would be used as thumbnails, letting the browser resize them.

No alternative for this kind of use

After looking at plenty of other solutions, it seems that there is no proper alternative besides Jetpack Photon. Thumbnail creation for JIG needs to fulfill this needs:

  • Works with external images from various sources, such as Facebook, Flickr, RSS feeds (YouTube, Vimeo, 500px, DeviantArt and so on).
  • The retina ready feature needs thumbnails to be created on demand at an optimal size for different pixel densities.
  • Any change in row height settings (or presets) requires a thumbnail with a new size.
  • Works on past galleries, for which the thumbnails haven't been built.
  • Does not upscale.
  • Caching with a way to easily clean up.
Problems with the built-in WordPress thumbnail creation

Articles often bash TimThumb and cite the the availability of tools and functions that rely on the built-in image handling of WordPress. Yes, it's suitable for themes where the developer knows what thumbnail sizes they will require across the various layouts. However, there are several problems with it when used for a plugin like JIG:

  • Does not work with external images.
  • Thumbnails would need to be pre-built, but the row height you may desire in the future is not known in the present.
  • Normally, thumbnails are generated on image upload only. Hence the many "thumbnail rebuild" plugins.
  • It clutters your /wp-content/uploads/ folder, wasting space with no way to easily clean up. Without intervention, the different and often unnecessary sizes are saved at a high quality too high, often causing the thumbnail to be larger (or at least disproportionate) in filesize than the original, hopefully optimized, originally uploaded version. Take a look at /wp-content/uploads/ directory, isn't there 10 copies of every picture, just because your theme defined various thumbnail sizes carelessly? Often this is the case.
Security and discontinuation

One could argue that TimThumb is allegedly not secure and is discontinued by its developer.

  • It wasn't actively developed since 2012 anyway, as it has reached maturity. Since then, very few updates have been released that only consist of little fixes. So in that sense, it doesn't make much difference that it's discontinued.
  • It is customized for JIG and the developer keeps a close eye on the script regarding its security. The last exploit found (webshots) wasn't even enabled or used by JIG, however since then it's been fixed either way. In general, whenever a security exploit is found in any script, it's done via ethical hacking where a possible solution is also proposed. It's expected that JIG will include community fixes should any security issue would occur.
What about the future, how do you make thumbnail creation sustainable?

As part of planned development, JIG will come up with diversified ways to create or access thumbnails:

  • It would depend less on TimThumb and offer options to use thumbnails sizes already available. Sources often create thumbnails at pre-defined sizes JIG could make use of. These would be a close enough match to your row height settings (which directly influence thumbnail size).
  • The possibility of better caching that would not cause any PHP script to run, just to access a cached thumbnail.
  • Nicer thumbnail URLs without visible query string parameters.
  • Superfluous blocks of code will eventually get removed from TimThumb, making it smaller, more compact, less prone to security issues.

Advanced use

Yes. There is no built-in setting for this but you can achieve this easily anyway. This is only for WordPress Media Library source, though.

  1. Go to the Captions tab > What text to show on the thumbnails or the Lightboxes tab > What text to show inside the lightbox section in the Shortcode Editor. The process is the same for both.
  2. Choose Custom field option for the desired caption location setting.
  3. Enter an arbitrary field name for the Caption custom field setting. Use a field name that doesn't exist yet.

Now, instead of actually setting the same value over and over again on your photos, let PHP simulate that by hijacking the value of this field. You are not even going to create this field. Just add this to the functions.php of your (child) theme:

Change your_field_name and Hello world! to your values.

Leveraging the facts that:

  • JIG can detect and show images attached to a post automatically...
  • You can create a PHP template tag and place it anywhere in the theme...

It's clear that if you use plenty of pictures throughout your posts, an automatic gallery at the beginning or end of articles is a good idea.

Add a gallery of attached images automatically
  1. Locate the file of your theme that's for showing single posts, products etc. Depending on your theme and custom post type, it may be different but it's usually the /wp-content/themes/Avada/single.php file. It's recommended to use child themes though.
  2. Find the line that contains:
  3. Add this where you need the gallery:
  4. Some posts might not have images, so hide the JIG error message: "There are no photos with those IDs or post X does not have any attached images!" Add this to JIG settings > General tab > Custom CSS setting:
Pro tip: Create a related posts gallery at the bottom of your articles
It works by finding posts that are at least in one category of current one. You can replace the word category with your custom taxonomy or use other shortcode attributes. Instead of step 3 above, your code should be based on this:

There would be three types of search:

  • Live searching in a JIG gallery much like filtering (with JavaScript). This is not yet possible.
  • Creating galleries based on pre-defined search terms that you set up in the shortcode. This is possible with NextGEN search or Flickr search. This lets you create galleries based on a search.
  • Connecting a user's search query to JIG, instead of pre-defining it. This lets users search for things and display the results with JIG. It's considered advanced use, but can learn it from this tutorial.
The anatomy of search.php file of the theme

What complicates things is that the file, such as /wp-content/themes/Avada/search.php contains lots of extra code: for sidebars, different search layouts, displaying content (posts) so it's not possible to precisely predict what you need to modify and where. Therefore, some PHP and WordPress knowledge is needed to know what your theme's code does and where should you inject custom search code.

Furthermore, the search.php is universal, it's used for your general site search, but also for any other search type.

WordPress Media Library image search on the frontend

WordPress has no way to search the Media Library on the frontend. However there is a free plugin that helps you do just that.

  1. Install Media Search Enhanced.
  2. Add this shortcode to place the plugin's media search box (in a sidebar widget, for example). It'll point to the WordPress search page with a specialized setup.
    [$mse-search-form]
  3. Wherever you see a search form in the code, it means to give a chance to refine search when undesirable or no results are found. Change it to the media search box, else it'll revert search to normal WP posts, confusing the visitor. For example, in Avada you'll need the following. The form is the original code, and the customization is wrapped around it:
  4. Add the actual JIG display right before the theme begins to show posts. In Avada, it's in a div with the posts-container class. The snippet attempts to use CSS to hide results that display without JIG.
  5. If results are duplicated below JIG using the style of the theme, you'll need a little extra code. Find where the loop begins with:
    Then add this immediately after that:

Please note that there is a possible limitation of this search when using WPML Media. The Media Search Enhanced plugin may show duplicates in the results due to the different language versions.

Search NextGEN Gallery or Flickr from the frontend

It's a little bit tricky, but here is how to do it:

  1. Create the ability to use the search page for something custom, it's done with a shortcode of the search box. Locate the functions.php file of your theme or the child theme, and add this:
  2. Add one of the following shortcodes to a widget or similar to place the search box. It'll initiate a specialized search in the specified source:

     [$jig_custom_search_form source=nextgen]

     [$jig_custom_search_form source=flickr]

  3.  Add the following code to your theme's search.php file, after the line where the content wrapper div starts, before any result gets shown with a loop. For your information, the JIG shortcodes will do the following:
    • NextGEN: searches for images in the NextGEN Gallery, whererever it matches any part of the filename, title, description, tags.
    • Flickr: searches for photos in a specific Flickr user and show up to 200 results (just a feasible limit).
  4. Fine tune this. The switch has 3 sources that can be searched. First, comment out the lines that you don't need. Put double slashes in front of the line like this:
  5. Generate your shortcode in the Shortcode Editor then export as a template tag. You must create yours to allow search in your profiles, but follow the examples closely. For security, do not use this to search the entire Flickr, only content in your own profile! Check out how pre-defined search works to get an idea: NextGEN search or Flickr search. This is the same thing but we are replacing the pre-defined value with an user-submitted one. Make sure the value is dynamic for any of the ng_search_query, flickr_search_text, flickr_search_tags settings:
  6. The snippet attempts to hide and prevent the theme's original search (among posts), but you should verify that nothing shows below JIG on the search results page. The custom CSS hides the area that has the post-content class, but if your theme is not Avada, this is likely different.

Achievable via 3rd party plugins

Yes, but please note that it's not Justified Image Grid that handles frontend uploading. It's not a source by itself and does not manage images, but shows content from various sources. With that said, it simply uses the fact that certain frontend upload solutions are clever enough to attach images to posts. JIG can automatically show all photos that belong to a post

Here are some steps for a very simple solution, which of course can be tweaked further or replaced with another frontend upload solution:

  1. Install the free Frontend Uploader plugin.
  2. Go to or create a post on which you'll accept user uploads.
  3. Insert this shortcode:
    [$fu-upload-form]
  4. And also add this shortcode, where you wish to show a gallery of uploaded photos:
    [$justified_image_grid]
  5. You'll need to approve uploaded entries by default. You can do so in the Media > Manage UGC screen. This approval process can be turned off at Settings > Frontend Uploader Settings screen.
  6. Approved content will show up on the page automatically, it's that simple.

If you need something different or better, it's up to you to find a middleman plugin that does exactly what you need. In order for it to work with JIG, it'll need to meet these requirements:

  • Mandatory:
  • At least one of these is required:
    • Photos attached to the post or any specific post.
    • Photos tagged with a certain tag or category.

Pro tip: An excellent out-of-the-box way is asking your audience to upload content to a Flickr group. For example, when hosting a contest this provides a more solid foundation and a platform that photographers are familiar with. This also allows them to enter with a photo which already exists in their Flickr portfolio with a chance of added exposure for them. JIG can show Flickr Group pools with ease.

No, because Justified Image Grid adapts to the font used by your theme. It's best to be consistent about fonts. Let the theme manage the content font and subsequently, how the gallery captions look like. There are no font-family CSS rules in JIG.

In case your theme doesn't come with an option to use Google Fonts, here is how you do it:

  1. Install Easy Google Fonts plugin (it's free).
  2. Go to Settings > Google Fonts screen.
  3. Add JIG to the Control name field and hit Enter.
  4. Add .jig-caption CSS selector then click Save Font Control.
  5. Go to the Customizer as it suggests. It's at Appearance > Customize by the way.
  6. Navigate to a page or post that has a JIG gallery (with captions).
  7. Go to Typography > Theme Typography and click Edit Font under JIG.
  8. Select a nice font under Font Family, such as Roboto or Source Sans Pro.
  9. Click Save & Publish once done.

Note: Set all other aspects such as color, background color, opacity, size, align, shadow, CSS rules such as font-weight in JIG, as it's unlikely to override those styles with Easy Google Fonts.

Justified Image Grid itself doesn't offer any bulk upload tools. There is a simple reason, this is not a gallery management plugin, but a display. On the other hand, it uses content sources where FTP upload in bulk is possible or can be achieved easily.

WordPress Media Library

WordPress doesn't have an out of the box solution to bulk import photos to the Media Library or detect images in a directory. However, with a good old plugin it quickly becomes child's play.

  1. Install the free Add From Server plugin. It's old but works well.
  2. Upload photos via FTP to a folder inside the /wp-content/uploads/ directory.
  3. Go to Media > Add From Server screen.
  4. Navigate to your folder and tick the checkbox next to the File column label.
  5. Click the Import button. Your images are now in the Media Library.
  6. The plugin called Media Library Assistant is recommended to categorize or tag these in bulk, so it's easier to select them for display.
NextGEN Gallery

It's incredibly easy.

  1. Create a new gallery by going to Gallery > Manage Galleries > Add new gallery button.
  2. Add a name such as cats then click OK button. It'll create a folder for you.
  3. Click Edit gallery in the notification at the top.
  4. Upload photos via FTP to /wp-content/gallery/cats/ folder.
  5. On the gallery edit screen click Scan Folder for new images. Thumbnails will be created and it's done.