WordPress and jQuery Masonry setup with floating images
The Masonry jQuery plugin is an easy way to stack divs in a nice grid without the usual problem with CSS floats – e.g divs with different heights will not look good beside each other.
In a recent project a client wanted WordPress thumbnails stacked in this way. I first added some code to functions.php in order to set widths and heights to the selected thumbnails.
// this goes into functions.php add_image_size( 'front-thumb', 150, 9999 ); //150 pixels wide (and unlimited height)
UPDATE 20 DEC 2011:
// this goes on top of the page, either to header.php or on top of the specific page template
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="jquery.masonry.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function($){
var $container = $('.front-box-container');
$container.imagesLoaded( function(){
$container.masonry({
itemSelector : '.front-box',
singleMode:true
});
});
});
</script>
// On the specific page or category archive create a new loop and create the markup for Masonry to catch:
<?php query_posts(array('paged' => get_query_var('page'),'posts_per_page' => 25, 'cat'=> '-3' ) ); ?>
<div class="front-box-container">
<ul class="front">
<?php while ( have_posts() ) : the_post(); ?>
<div class="front-box">
<li<?php if (! has_post_thumbnail()){echo (' class="front-noimage"');}?>>
<a href="<?php the_permalink() ?>">
<?php the_post_thumbnail('front-thumb'); ?>
<div class="front-info">
<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<div class="alternate-content"><?php the_excerpt(); ?></div>
</div>
</li>
</div>
<?php endwhile;
wp_reset_query(); ?>
</ul>
</div> <!-- front-box-container -->
That should make the images with (.front-box) inside the parent div (.front-box-container) float nicely with Masonry. Good luck!
Hi,
Can’t seem to get this working.
Do you have a page template I can use?
Where do I put: query_posts(array(‘paged’ => get_query_var(‘page’),’posts_per_page’ => 25, ‘cat’=> ‘-3’ ) );
Thanks
R
Hey, I just updated the example code to better represent a functioning demo. Check it out and get back to me if it doesn’t work. /Finn
I have been trying tutorial after tutorial and can not get this to work in my wordpress child theme.