12 Apr 2010

WordPress [gallery]: Force n Number of Columns

If you use [gallery] shortcode without setting the columns value, the default is set to 3. Some WordPress theme can either fit 3 or more column per row or less. Below is an example to force WordPress [gallery] columns to 2 to any post or page that uses [gallery] shortcode:

function gallery_columns($content){	
	$columns = 2;
	$pattern = array(
		'#(\[gallery(.*?)columns="([0-9])"(.*?)\])#ie',
		'#(\[gallery\])#ie', 
		'#(\[gallery(.*?)\])#ie'
	);	 	
	$replace = 'stripslashes(strstr("\1", "columns=\"$columns\"") ? "\1" : "[gallery \2 \4 columns=\"$columns\"]")';

	return preg_replace($pattern, $replace, $content);
}

add_filter('the_content', 'gallery_columns');

$columns can be set to any numeric value. If [gallery] columns is set to 0, no row breaks will be included.

Plugin download: Gallery Columns