I’m working on a project for a friend that involves a massive page with 3,000+ photos. See: http://www.thepurplepixie.com/projects/purple-pixies-people-project/
Currently, I have pagination set to 50 thumbnails per page in order to try and get the Infinite Scroll (WordPress Plugin) (Infinite Scroll Homepage) to work, and to illustrate how I have the galleries set up in NextGen. Before, I had pagination off so it was one massive wall of photos, which, while accomplishing more or less what I was wanting, ultimately was brutal to load — both in terms of memory and bandwidth.
I can’t seem to get the plugin version of Infinite Scroll to work, I’m guessing because it’s more structured towards post content than big bunches of images. Also, I have multiple instances of the pagination system per page, due to multiple galleries per page.
Does anyone have any idea how I would go about lazy loading these images?
Thank you!
Try the Lazy Load plugin â its code is said to be used on WordPress.com VIP sites, and the plugin is pretty current (last updated July 4th).
Caution! Lazy loading images is tricky on slow connections, where there’s a chance that images fail to load at all. Even a small bug or incompatibility in the JavaScript code can break your site.
Next, we have to add a small bit of Javascript to our footer to get the lazy load plugin to recognize images. You can see how this works on the pluginâs homepage, but basically we have to specify a class for the plugin to target. It will use any images with this class to swap out a placeholder image with the actual image when a user scrolls to it. Weâll use the wp_footer action to automatically append this to the footer of each one of our pages.
With this code in place, the lazy load plugin will actually start working. But our images are still being loaded in by WordPress. The trick is to filter through all of our posts and swap out an image with a placeholder image. Then, per the pluginâs instructions, we use a âdata-originalâ attribute on the img tag to signify the actual URL of the image. Finally, we add a class of âlazyâ to each image so jQuery knows to look for it. The lazy load plugin will wait for these images to come into a users view, and then pull them in using AJAX and load them on the page.
Our first step is to add a simple filter using preg_replace_callback to search for img tags.
The jQuery lazy load plugin for WordPress worked well for me in the past. Note that in September 2010 the Lazy Load author wrote this: